Java 如何在ActiveMQ Artemis集群中启用REST

Java 如何在ActiveMQ Artemis集群中启用REST,java,rest,activemq-artemis,Java,Rest,Activemq Artemis,我们正在尝试设置REST接口,如中所述。我们已经让它在版本2.10.1和2.9.0中工作,但只在独立模式下工作。集群2.9.0是我们当前的生产环境,我们正试图在其中设置REST接口 我们有一个使用基于文件的日志的集群主动/被动解决方案。我们的主动/被动解决方案前面有一个Netscaler。我们发现这就是我们在系统中看到的。这个错误在2.3.0中解决了,所以我想我们应该运行TCP而不是vm?我们如何设置 为我们的工作StdAlone配置: 在broker.xml中,我们添加了: vm://0 在r

我们正在尝试设置REST接口,如中所述。我们已经让它在版本2.10.1和2.9.0中工作,但只在独立模式下工作。集群2.9.0是我们当前的生产环境,我们正试图在其中设置REST接口

我们有一个使用基于文件的日志的集群主动/被动解决方案。我们的主动/被动解决方案前面有一个Netscaler。我们发现这就是我们在系统中看到的。这个错误在2.3.0中解决了,所以我想我们应该运行TCP而不是vm?我们如何设置

为我们的工作StdAlone配置:

在broker.xml中,我们添加了:

vm://0 在rest-messaging.xml中

0 错误的 错误的 符合事实的 主题推送存储 队列推送存储 0 10 1. 300 -1 vm://0 在web.xml中

com.myapp.artemis.MyResteasyBootstrap org.apache.activemq.artemis.rest.integration.RestMessagingBootstrapListener Rest消息传递 org.jboss.resteasy.plugins.server.servlet.FilterDispatcher Rest消息传递 /* 当包含以下类别时,此选项效果良好:

包com.myapp.artemis; 导入javax.servlet.ServletContextEvent; 导入org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap; 导入org.jboss.resteasy.spi.Registry; 公共类MyResteasyBootstrap扩展了ResteasyBootstrap{ @凌驾 public void contextInitializedServletContextEvent事件 { super.contextInitializedevent; event.getServletContext.setAttributeRegistry.class.getName,deployment.getRegistry; } } 如何在集群环境中实现这一点?我们如何使用TCP
如果您想使用TCP for REST,只需在REST-messaging.xml中对其进行配置,而不是在vm中?

错误的 错误的 符合事实的 主题推送存储 队列推送存储 0 10 1. 300 -1 tcp://127.0.0.1:61616 如果要将REST与主/从HA对一起使用,则应在主代理和从代理前面的单独机器上配置web应用程序服务器,例如Tomcat或Jetty,并使用如下URL:

tcp://master:61616,tcp://slave:61616?ha=true;重新连接尝试=-1 也就是说,我不建议使用REST,因为虽然REST相对简单,但没有用于消息传递的标准REST接口,所以您的REST客户端将绑定到ActiveMQ Artemis,这对应用程序的可移植性不好。通常跺脚是休息的好替代品。STOMP是一个简单的、基于文本的协议,可以从JavaScript和REST可以使用的大部分相同的地方使用,再加上它的标准化,所以您会发现许多不同语言的客户机实现


此外,REST接口和远程代理之间的连接目前没有实现安全性,这意味着任何客户端都可能连接到代理并消费或生成消息。

为什么要使用REST而不是STOMP?虽然REST相对简单,但没有用于消息传递的标准REST接口,因此您的REST客户端将绑定到ActiveMQ Artemis,这对应用程序的可移植性不利。同时,STOMP是一个简单的、基于文本的协议,可以从JavaScript和REST可以使用的大部分相同位置使用,再加上它的标准化,所以您会发现许多不同语言的客户端实现。@JustinBertram,这是该项目的一个请求。AMQP直接或休息。我想直接和AMQP一起去。我们正在与大量使用REST的CRM集成。但我想我们应该改做AMQP。但是对于这个问题,有没有任何解决方案可以用于REST的集群设置?谢谢。我一定会和AMQP一起去。它是一个功能齐全、基于标准的消息传递协议。它肯定会为您提供更高的性能和灵活性。我将用REST提供集群的答案,而不是评论。谢谢。我可能不会在不久的将来验证它,因为我们将放弃REST,转而使用AMQP。不过有个推荐人很好。非常感谢。