【发布时间】:2019-10-10 21:09:14
【问题描述】:
我有一个使用 CometD 的聊天实现。
在前端,我有一个客户端,它的 clientId=123 并正在与 VirtualMachine-1 交谈
VirtualMachine-1 和 Client 之间的长轮询连接是通过 clientId 完成的。在握手期间建立连接时,VirtualMachine-1 将 123 clientId 注册为它自己的并接受它的数据。
由于某种原因,如果 VM-1 重新启动或失败。 Client 和 VM-1 之间的长轮询连接断开(由于 VirtualMachine-1 已死,心跳会失败,因此会断开连接)。
在这种情况下,CometD loadBalancer 会将客户端通信重新路由到新的 VirtualMachine-2。但是,由于 VirtualMachine-2 具有不同的 clientId,它无法理解来自客户端的“123”。
我的问题是 - 在这种情况下,cometD 的行为是什么?它如何将流量从 VM-1 重新路由到新的 VM-2 以成功通过握手过程?
【问题讨论】:
标签: virtual-machine client-server long-polling cometd