弹簧跺脚继电器+;RabbitMQ集群,每个集群前面都有HA代理,用于负载平衡
我正在设计一个系统,将从设备生成的大量实时数据传输给用户,最好是通过WebSocket。我决定使用SpringStompWebSockets,因为它可以更快地设置、理解和支持一些开箱即用的东西,比如RabbitMQ和安全性。另外,因为计划将Spring用于另一个RESTAPI,所以Spring可以作为技术堆栈的选择。RabbitMQ是我决定使用的消息代理。然而,对于如何扩展这样一个系统,我找不到足够的指导 我想到的可能解决办法是:弹簧跺脚继电器+;RabbitMQ集群,每个集群前面都有HA代理,用于负载平衡,rabbitmq,scalability,spring-websocket,spring-messaging,Rabbitmq,Scalability,Spring Websocket,Spring Messaging,我正在设计一个系统,将从设备生成的大量实时数据传输给用户,最好是通过WebSocket。我决定使用SpringStompWebSockets,因为它可以更快地设置、理解和支持一些开箱即用的东西,比如RabbitMQ和安全性。另外,因为计划将Spring用于另一个RESTAPI,所以Spring可以作为技术堆栈的选择。RabbitMQ是我决定使用的消息代理。然而,对于如何扩展这样一个系统,我找不到足够的指导 我想到的可能解决办法是: 在STOMP broker实例前面和之间添加HAProxy S
- 在STOMP broker实例前面和之间添加HAProxy STOMP代理和RabbitMQ集群,HAProxy将充当 两种情况下的负载均衡器。SpringStomp代理将指向HAProxy作为代理中继主机。要求具有高可用性和无数据丢失
注意:在这个系统中,消息生产者和消费者实际上都是websocket Java客户端。我从中获取了示例代码并创建了两个独立的客户端-一个只发送消息,即设备数据(生产者),另一个订阅这些消息(消费者)。因此,两者都使用相同的websocket URL连接到相同的STOMP代理。在上述系统实现中,客户端将指向HAProxy进行websocket连接。只是更新了这一点,我通过创建上述设置进行了实验,它成功了,即我能够使用RabbitMQ代理连接到websocket stomp服务器/发送/接收数据,并使用HAProxy负载平衡,如上所述。Spring中配置的代理主机/端口指向HAProxy,后者反过来将请求转发到RabbitMQ后端。类似地,websocket客户端通过HAProxy连接到Spring STOMP websocket服务器应用程序