Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do you scale XMPP installation? [closed]

We are working on building a XMPP server from scratch (due to specific needs we have). One of the areas where we are unable to get a clear picture is on how do you scale XMPP. Say I have 10,000 users and each instance of XMPP server can handle a maximum of 2,000 concurrent clients/connections. We will run multiple instance of XMPP and clients will use this to connect to one of the running instance as is mentioned here: http://xmpp.org/rfcs/rfc6120.html#tcp-resolution-prefer

I think all major XMPP service providers use multiple server, like Google uses 5 XMPP servers as is mentioned here: http://kingant.net/check_xmpp_dns/?h=kingant.net

Now assuming I have two users : A and B. A connects to server_1 and B connects to server_2. When A sends a message to B, how does the whole flow of message occurs from A to server_1 to sever_2 to B? How does server_1 knows that B is connected to server_2? Is this done via S2S? Again, I am only concerned about the scalability and not inter-op between two different XMPP service provider.

Any help will be great.

like image 239
user1926558 Avatar asked Nov 12 '22 14:11

user1926558


1 Answers

There is no generic rule of how to scale an XMPP server. This really depends on the type of project you would like to build. ejabberd offers the basic tools to make a very scalable server, but you need to understand how XMPP work in details and how to design your project to make it work.

I suggest you read: http://blog.process-one.net/scale_means_skills/

Note: Google has much much more than 5 XMPP servers.

like image 107
Mickaël Rémond Avatar answered Dec 05 '22 11:12

Mickaël Rémond