I am pretty much newbie in Openfire thingie. I have to develop a Jabber based desktop messaging service which would deal atleast 0.1 million users at a time. Now I am not much clear about many things before I opt Jabber or openFire.
When using two servers of open fire on different machines and one user logs in frmo Server 1 and other from Server 2 then how will be made sure that Message from User 1 will be sent to User 2 or vice versa?
Does OpenFire provides someload balancer?
if we go for enterprise level solution(Paid solution) then will I as a developer has to think about where to redirect my requests(user auth,messages) or some simple login() method at development level will take care of it.
What are main drawbacks of using open source version over cluster one in light of above mentioned things?
will i need a seperate load balancing solution if we go for licensed version?
I will be greatful if I am answered in detail. If there’s any supporting article or case study of implementation then please do share with me.
0.1 million? A fancy way of saying 100,000- are you in marketing by chance?
Anyways, to answer your questions:
If you set up two openfire servers without clustering, thing wont work well for you unless they are different domains. If you have some logical splits in your user base, that might be an option to consider (departments, buildings, locations, etc)
Openfire has Connection Managers- think of them like proxy servers. They can run on different systems, and “route” the messages back to the main server. This helps keep the load down on the main server. This is not the same as clustering, but is available for free. Using the connection managers you can use an external load balancer (either software or hardware) to help split connections between the connection mangers. Keep in mind that since XMPP connections are long lived, you cant shift active connections around without disconnecting the user.
Openfire “enterprise” has been opensourced and is now available for free. The clustering solution requires a third party license and you will need to speak to Jive to figure out how to get it, Jive dosnt seem too interested in selling it anymore. There has been some efforts to re-create it with open source technology, but they are not complete yet.
The main distinction between using Connection Managers and creating a cluster is that the CM’s are lightweight extensions of the server, where the cluster creates multiple fully fledged servers- if one server goes down, the service is not unavailable. Also, the top end load limit with using CM’s will be lower than when using a cluster, since all the connections and data need to be routed through a single server still.
Im not sure what the top level numbers are for using CM’s or clustering (Gato might be the best for that), but Im pretty sure that 100K simultaneous connections can be handled with reasonable hardware and CM’s.