如何启用 activemq Rest Api 以支持使用共享存储的 Master/Slave 配置

How to enable the activemq Rest Api to support a Master/Slave configuration using a shared storage

我已将 activeMQ 设置为 master/slave 配置,使用共享存储来实现数据的高可用性。我的应用程序使用 ActveMQ 的 REST API 使用来自 activemq 的消息。我如何配置我的系统,以便这些 REST API 调用也将遵守 master/slave 故障转移策略。 下面提到的一种解决方案 link 是使用第三方负载平衡器。

Failover support for activemq REST api

但我更愿意在使用负载平衡器之前探索任何可用的配置选项。

我能找到的解决方法是

  1. 从 ActiveMQ 的嵌入式码头服务器复制并部署 API 网络应用程序和库,并将其作为 WAR 部署在独立的 JETTY 服务器上。
  2. 修改 API Web 应用程序的 web.xml 以将故障转移 URL 作为上下文参数传递 org.apache.activemq.brokerURL
  3. 我的应用程序现在与该码头服务器通信,该码头服务器又会将请求路由到 ActiveMQ。

我将 API 网络应用程序复制到单独的服务器的原因是嵌入式 Jetty 服务器优先于它自己的代理而不是 servlet 上下文参数。

是否有一些配置可确保嵌入式码头服务器选择故障转移 URL,或者是否有更好的方法来处理具有故障转移支持的 Rest 调用?

你的解决方案似乎是合理的,只要你 运行 码头服务器的两个副本,不造成单点故障。

实际上,您仍然可以使用 AMQ 嵌入式码头,但只需更改部署的应用程序即可。这样,您将拥有两台服务器。这也需要在它们前面有一个负载平衡器,但高可用性 Web 解决方案总是如此。