Когда клиент CometD перенаправляется на второй сервер с помощью балансировщика нагрузки, второй сервер не знает об этом клиенте.
Клиент отправит сообщение /meta/connect
с clientId=123
ивторой сервер ответит 402::unknown_session
и advice: {reconnect: "handshake"}
.
Получив совет для повторного рукопожатия, клиент отправит сообщение /meta/handshake
и получит новый clientId=456
от второго сервера. .
После рукопожатия хорошо написанное приложение CometD подпишется (даже для динамических подписок ) на все необходимые каналы и в конечном итоге будет восстановлено для работы, как прежде, почтипрозрачно.
Сообщения, публикуемые клиенту при переключении с одного сервера на другой, полностью теряются: CometD не реализует никаких постоянных функций.
Однако, сохраняющиеся сообщения до тех пор, пока клиент не подтвердил их,возможно: CometD предлагает несколько слушателей, которые вызываются реализацией CometD, и через этих слушателей приложениеication может сохранять сообщения (или другую информацию) в своем собственном постоянном (и, возможно, распределенном) хранилище: Redis, RDBMS и т. д.
CometD прозрачно обрабатывает переподключение для вас - он просто принимает несколько сообщений между клиентом иновый сервер.
Вы также хотите прочитать о функциях кластеризации CometD в памяти .