Load balancing / fail over components

Hi,

is there any way to register more then one external components to the same sub domain for load balancing or fail over?

grtz

Bram

Hi,

If you’‘re refering to Wildfire’'s capability, the answer is no. Once an external component is registered with a (sub)domain name, another attempt to register using the same name will fail.

If you’‘re concerned about processing load, I’'d suggest that you run your external component in a separate server. For HA solution, you can setup an active-passive failover cluster using a pair of external component servers that connect to a single Wildfire server.

Message was edited by: aznidin

so what is the best way to do this?

use http://www.xmpp.org/extensions/xep-0051.html ?

to redirect to different components?

Interesting, although that’‘s not exactly what I meant. I just suggested that you run Wildfire and your external component in separate servers to segregate loads. Also, the suggested high availability (HA) setup doesn’‘t require any of the running applications to adopt additional protocols like XEP-0051. It’'s an active-passive cluster setup where you have 2 servers “mirroring” each other and perhaps sharing an external database. At any single moment, only one of them (primary) will run the external component. When that server fails, the other (secondary) will take over running the external component.

However, I had a quick look at XEP-0051, and I think with that, it’'s possible to setup an active-active cluster. I imagine that you could have a special custom-developed client that will accept requests for service from normal clients, and redirect them to one of the 2 external component servers to achieve load balance. Still, the 2 servers cannot have the same (sub)domain name.

Also, I think you’‘ll need to impose a rule that requires all clients to support XEP-0051. Can’‘t think of a client that can do that, and don’'t think that there would be any in the near future; because XEP-0051 is not recommended by the XMPP council for implementation. You would have to create it yourself, perhaps as an XEP-0051 plugin for Spark.

I don’‘t exactly know what’‘s best for you. It’'s just an opinion.