Spring websocket/broker 故障转移
Spring websocket/broker fail over
我有以下设计:
- 机器 1
- WebsocketApp
- ActiveMQ 代理
- 机器2
- WebsocketApp
- ActiveMQ 代理
- 机器3
- WebsocketApp
- ActiveMQ 代理
- 机器4
- WebsocketApp
- ActiveMQ 代理
客户端将通过 F5 负载平衡器使用 STOMP over WebSockets 连接到 ActiveMQ 代理。他们可以根据负载系数降落在任何机器上。
对于故障转移场景,我们如何在 ActiveMQ 之间共享 Web 套接字会话。否则,如果经纪人关闭,它持有的所有会话都将关闭。
STOMP 是一个非常简单 的协议。它不支持 fail-over.
如果 STOMP 客户端连接到的代理在您的环境中出现故障,那么该客户端的连接将断开并且该代理上的所有消息将不可用,直到代理恢复。客户端将需要通过 F5 URL.
重新连接到另一个代理
STOMP 连接不像 HTTP。它们是有状态的。客户“会话”数据不在经纪人之间共享。如果客户的代理出现故障,那么它就不能像什么都没有发生一样简单地继续运行,这对于 HTTP use-cases.
来说通常是可能的。
我有以下设计:
- 机器 1
- WebsocketApp
- ActiveMQ 代理
- 机器2
- WebsocketApp
- ActiveMQ 代理
- 机器3
- WebsocketApp
- ActiveMQ 代理
- 机器4
- WebsocketApp
- ActiveMQ 代理
客户端将通过 F5 负载平衡器使用 STOMP over WebSockets 连接到 ActiveMQ 代理。他们可以根据负载系数降落在任何机器上。
对于故障转移场景,我们如何在 ActiveMQ 之间共享 Web 套接字会话。否则,如果经纪人关闭,它持有的所有会话都将关闭。
STOMP 是一个非常简单 的协议。它不支持 fail-over.
如果 STOMP 客户端连接到的代理在您的环境中出现故障,那么该客户端的连接将断开并且该代理上的所有消息将不可用,直到代理恢复。客户端将需要通过 F5 URL.
重新连接到另一个代理STOMP 连接不像 HTTP。它们是有状态的。客户“会话”数据不在经纪人之间共享。如果客户的代理出现故障,那么它就不能像什么都没有发生一样简单地继续运行,这对于 HTTP use-cases.
来说通常是可能的。