Допустим, у вас есть приложение, которое имеет десятки миллионов установок и десятки тысяч активных пользователей в данный момент времени. Мне нужно регистрировать данные об активности моих пользователей на моих серверах. В настоящее время я делаю HTTP-запросы с устройства на свои серверы. У меня есть куча машин, на которых работает веб-сервер, сидящий за ELB Amazon. Они анализируют данные, поступающие с устройств, и помещают их в mongodb.
Теперь я хотел бы собирать данные устройства с помощью восходящего CCS, предоставляемого Google GCM (чтобы я мог использовать GCM для более надежной доставки данных). Я написал прототип XMPP-сервера, и я могу заставить все это работать, но я беспокоюсь о масштабировании. Что произойдет, если Google начнет отправлять мне сообщения со скоростью, превышающей скорость их потребления? Раньше я мог использовать несколько серверов за балансировщиком нагрузки, чтобы справиться с высокой скоростью запросов. Есть ли здесь понятие балансировки нагрузки?
Если я открою несколько подключений со своего сервера к серверу Google (Google говорит, что у меня может быть до 1000 подключений для данного идентификатора отправителя), будут ли входящие запросы балансироваться между этими подключениями?
Наконец, есть ли рекомендуемое решение, которое решит большинство вышеперечисленных проблем? Решит ли использование ejabberd некоторые из вышеперечисленных проблем?
Огромное спасибо.