Let's say you have an application with 10 million installations and 10 thousand active users at a certain point in time. I need to record activity data of my users on my servers. I am currently making HTTP requests from the device to my servers. I have a bunch of machines with a web server sitting at Amazon ELB. They analyze the data coming from the devices and put it in mongodb.
Now I would like to capture device data using the upstream CCS provided by Google GCM (so that I can piggyback to GCM for more reliable data delivery). I wrote a prototype XMPP server, and I can make it work, but I'm worried about expanding it. What happens if Google starts sending me messages faster than I can consume? I used to be able to use multiple servers behind a load balancer to handle the high frequency of requests. Is there a load balancing concept here?
If I open several connections from my server to a Google server (Google says that I can have up to 1000 connections for a given sender ID), will incoming requests be load balanced between these connections?
Finally, is there a recommended solution that will help solve most of the problems above? Will using ejabberd solve some of the problems above?
Thanks a lot.
source
share