如何启用 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
但我更愿意在使用负载平衡器之前探索任何可用的配置选项。
我能找到的解决方法是
- 从 ActiveMQ 的嵌入式码头服务器复制并部署 API 网络应用程序和库,并将其作为 WAR 部署在独立的 JETTY 服务器上。
- 修改 API Web 应用程序的 web.xml 以将故障转移 URL 作为上下文参数传递 org.apache.activemq.brokerURL
- 我的应用程序现在与该码头服务器通信,该码头服务器又会将请求路由到 ActiveMQ。
我将 API 网络应用程序复制到单独的服务器的原因是嵌入式 Jetty 服务器优先于它自己的代理而不是 servlet 上下文参数。
是否有一些配置可确保嵌入式码头服务器选择故障转移 URL,或者是否有更好的方法来处理具有故障转移支持的 Rest 调用?
你的解决方案似乎是合理的,只要你 运行 码头服务器的两个副本,不造成单点故障。
实际上,您仍然可以使用 AMQ 嵌入式码头,但只需更改部署的应用程序即可。这样,您将拥有两台服务器。这也需要在它们前面有一个负载平衡器,但高可用性 Web 解决方案总是如此。
我已将 activeMQ 设置为 master/slave 配置,使用共享存储来实现数据的高可用性。我的应用程序使用 ActveMQ 的 REST API 使用来自 activemq 的消息。我如何配置我的系统,以便这些 REST API 调用也将遵守 master/slave 故障转移策略。 下面提到的一种解决方案 link 是使用第三方负载平衡器。
Failover support for activemq REST api
但我更愿意在使用负载平衡器之前探索任何可用的配置选项。
我能找到的解决方法是
- 从 ActiveMQ 的嵌入式码头服务器复制并部署 API 网络应用程序和库,并将其作为 WAR 部署在独立的 JETTY 服务器上。
- 修改 API Web 应用程序的 web.xml 以将故障转移 URL 作为上下文参数传递 org.apache.activemq.brokerURL
- 我的应用程序现在与该码头服务器通信,该码头服务器又会将请求路由到 ActiveMQ。
我将 API 网络应用程序复制到单独的服务器的原因是嵌入式 Jetty 服务器优先于它自己的代理而不是 servlet 上下文参数。
是否有一些配置可确保嵌入式码头服务器选择故障转移 URL,或者是否有更好的方法来处理具有故障转移支持的 Rest 调用?
你的解决方案似乎是合理的,只要你 运行 码头服务器的两个副本,不造成单点故障。
实际上,您仍然可以使用 AMQ 嵌入式码头,但只需更改部署的应用程序即可。这样,您将拥有两台服务器。这也需要在它们前面有一个负载平衡器,但高可用性 Web 解决方案总是如此。