gpt4 book ai didi

rabbitmq - Spring STOMP Broker Relay + RabbitMQ Cluster 和 HA 代理前端用于负载平衡

转载 作者:行者123 更新时间:2023-12-04 05:38:39 27 4
gpt4 key购买 nike

我正在设计一个系统,其中从设备生成的大量实时数据最好通过 websockets 传输给订阅者。我决定使用 Spring STOMP Websockets,因为它可以更快地设置、理解并支持一些开箱即用的功能,例如 RabbitMQ 和 Security。也因为计划是将 Spring 用于另一个 REST API,所以 Spring 作为技术堆栈的选择。 RabbitMQ 是我决定的消息代理。但是,我找不到有关如何扩展此类系统的大量指导。

我正在考虑的可能解决方案是:

  • 在 STOMP 代理实例之前以及之间添加 HAProxy
    STOMP Brokers 和 RabbitMQ 集群,HAProxy 将充当
    两种情况下的负载均衡器。 Spring STOMP 代理将指向 HAProxy 作为代理中继主机。要求是具有高可用性且不会丢失数据。

  • 由于我之前没有使用 Websockets 的经验,因此我想获得有关此解决方案是否正确的指导,或者我在这里遗漏了什么?

    注意:在这个系统中,消息生产者和消费者实际上都是 websocket Java 客户端。我从 https://github.com/nickebbutt/stomp-websockets-java-client 中获取了示例代码并创建了两个单独的客户端 - 一个只发送消息,即设备数据(生产者),另一个订阅这些消息(消费者)。因此,两者都使用相同的 websocket URL 连接到同一个 STOMP 代理。通过上述系统实现,客户端将指向 HAProxy 进行 websocket 连接。

    最佳答案

    只是对此进行了更新,我通过创建上述设置进行了实验并且它起作用了,即我能够使用 RabbitMQ 代理连接到 websocket stomp 服务器/发送/接收数据,并使用 HAProxy 负载平衡,如上所述。 Spring 中配置的代理主机/端口指向 HAProxy,HAProxy 又将请求转发到 RabbitMQ 后端。同样,websocket 客户端通过 HAProxy 连接到 Spring STOMP websocket 服务器应用程序。

    关于rabbitmq - Spring STOMP Broker Relay + RabbitMQ Cluster 和 HA 代理前端用于负载平衡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43388923/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com