Как избежать долгоживущего TCP-соединения в XMPP, чтобы сервер мог обрабатывать миллионы пользователей?
Если ответ "использование xmpp BOSH", то для использования BOSH нам необходим промежуточный сервер CM (Connection Manager), который будет взаимодействовать с сервером xmpp. Таким образом, взаимодействие клиента xmpp с CM будет происходить по обычному протоколу http (который будет масштабируемым), но опять-таки сервер CM к xmpp будет использовать долгосрочное tcp-соединение, что вызовет проблему масштабируемости.
Как мы можем сделать клиент-сервер xmpp более масштабируемым??
1 ответ
Двунаправленные потоки через синхронный HTTP (BOSH) - это в основном технология, позволяющая поддерживать соединение в активном состоянии, чтобы система могла отправлять и получать данные туда и обратно. Чтобы использовать xmpp через HTTP, вам нужно использовать BOSH.
Если вы беспокоитесь о масштабируемости, вы можете в основном использовать компоненты, предназначенные для масштабируемости, такие как Nginx, компонент вместо Apache httpd, также есть много доступных диспетчеров соединений, причем Punjab является самым масштабируемым из всех. Если вы используете Openfire в качестве сервера XMPP, у него есть встроенный менеджер соединений, который доказал свою масштабируемость.