java - 如何启用 activemq Rest Api 以支持使用共享存储的主/从配置

标签 java activemq

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

Failover support for activemq REST api

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

我能找到的解决方法是

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

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

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

最佳答案

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

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

关于java - 如何启用 activemq Rest Api 以支持使用共享存储的主/从配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32369695/

相关文章:

java - 通过 IP 过滤从外部保护 ActiveMQ

java - 每个字母出现的次数

java - 图形绘制到窗口后的 "secret"是什么?

java - 创建 Lambda 函数实例

java - 如何在 100 多个现有类中创建新的类变量?

docker - ActiveMQ主题通配符不起作用

apache - 如何在一个系统中运行两个 Apache ActiveMQ 实例?

java - Openshift jobssas 7 云正在制造 war ,但没有部署它

java - 未使用 ActiveMQ VM Transport 接收来自生产者的消息

c++ - ActiveMq:持久队列和离线系统