【问题标题】:Spring Websocket mutiple broker relay addresses?Spring Websocket 多个代理中继地址?
【发布时间】:2016-07-06 11:13:41
【问题描述】:

我有一个 RabbitMQ 服务器集群。我想将我的 StompBrokerRelay 请求从我的 Spring Boot 应用程序(使用 websockets)负载平衡到集群中的节点,但是我看不到在哪里可以使用 MessageBrokerRegistry 设置地址列表。现在配置如下:

  @Override
  public void configureMessageBroker(MessageBrokerRegistry config) {
    config
        .enableStompBrokerRelay("/exchange")
        .setAutoStartup(true)
        .setVirtualHost(BROKER_VHOST)
        .setRelayHost(BROKER_HOST)
        .setRelayPort(BROKER_PORT)
        .setClientLogin(BROKER_CLIENT_LOGIN)
        .setClientPasscode(BROKER_CLIENT_PASSWORD)
        .setSystemLogin(BROKER_SYSTEM_LOGIN)
        .setSystemPasscode(BROKER_SYSTEM_PASSWORD);
  }

有什么方法可以 .setRelayHosts() 还是我需要寻找另一个框架,或者,天堂禁止,尝试解决这个问题以与多个主机一起工作。

【问题讨论】:

  • 为什么不用rabbitmq集群?
  • 我打算。问题是客户端需要检测故障。从文档中:“客户端可以正常连接到集群中的任何节点。如果该节点出现故障,并且集群的其余部分仍然存在,那么客户端应该注意到关闭的连接,并且应该能够重新连接到一些幸存的节点集群的成员。”因此,如果 spring 不允许您指定多个主机,我不确定当一个主机失败时该怎么办。
  • 现在解决了吗?我需要添加多个代理(activeMQ 和 rabbitMQ)

标签: spring rabbitmq spring-websocket


【解决方案1】:

目前不可能。 Spring websocket 有点半生不熟。

【讨论】:

  • 这还是不行吗?
【解决方案2】:

检查https://docs.spring.io/spring-framework/docs/current/reference/html/web.html#websocket-stomp-handle-broker-relay-configure。如果您希望提供多个地址,则在每次尝试连接时,您可以配置地址提供者,而不是固定的主机和端口。代码片段也包含在该部分的末尾。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-21
    • 1970-01-01
    • 1970-01-01
    • 2014-01-11
    相关资源
    最近更新 更多