Apache camel 具有两个独立代理配置url的Camel JMS Artemis客户端仅使用来自一台主机的消息

Apache camel 具有两个独立代理配置url的Camel JMS Artemis客户端仅使用来自一台主机的消息,apache-camel,spring-jms,activemq-artemis,Apache Camel,Spring Jms,Activemq Artemis,我在本地主机上启动了两个独立的Artemis代理,使用6161616和61617端口进行检查 理想情况下,我希望连接到两个独立的Artemis代理,它们运行在同一网络中的不同主机上。未在群集中配置代理 下面是我尝试使用的Camel配置 对于Artemis 2.14.0客户端jar,我注意到消费者只连接到一个主机(61616),并开始使用消息。我没有看到任何消费者访问localhost:61617 以下配置是否有任何错误 要排队的消息:${bodyAs(String)} 我最终尝试了下面的方法

我在本地主机上启动了两个独立的Artemis代理,使用
6161616
61617
端口进行检查

理想情况下,我希望连接到两个独立的Artemis代理,它们运行在同一网络中的不同主机上。未在群集中配置代理

下面是我尝试使用的Camel配置

对于Artemis 2.14.0客户端jar,我注意到消费者只连接到一个主机(
61616
),并开始使用消息。我没有看到任何消费者访问
localhost:61617

以下配置是否有任何错误


要排队的消息:${bodyAs(String)}
我最终尝试了下面的方法,但同样无效

(tcp://localhost:61616?useTopologyLoadBalancing=false,tcp://localhost:61617?useTopologyLoadBalancing=false;)?wireFormat.maxInactivityDuration=500000
如果不使用
useTopologyLoadBalancing=false
,同样的行为也会发生

Broker.xml-相同的配置只有另一个代理上的
url更新为61617


0.0.0.0
真的
异步
数据/分页
数据/绑定
数据/日志
数据/大型消息
真的
2.
10
4096
10米
2220000
4096
5000
90
真的
120000
60000
停止
20620000
tcp://0.0.0.0:61616?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;amqpMinLargeMessageSize=102400;协议=核心、AMQP、STOMP、HORNETQ、MQTT、OPENWIRE;useEpoll=true;amqpCredits=1000;amqflowCredits=300;AMQPDicateDetection=true;AMQPDicateDetection=true;supportAdvisory=错误
tcp://0.0.0.0:5672?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;协议=AMQP;useEpoll=true;amqpCredits=1000;amqflowCredits=300;amqpMinLargeMessageSize=102400;AMQPDicateDetection=true
DLQ
过期队列
0
-1
10
页
真的
真的
真的
真的
DLQ
过期队列
0
-1
10
页
真的
真的
真的
真的

很多工作原理都要归结到如何编写Camel。Camel正在创建多少个连接?Camel是否使用相同的
ConnectionFactory
实例来创建每个连接?
concurrentConsumers
配置如何与底层JMS连接相关(例如,
10
值是否会导致创建10个连接)?为什么不进行集群?你几乎肯定会想把你的经纪人聚集在一起,以避免消费者饥饿的问题。另外,请记住,如果您只有几个客户端,那么根本不需要集群。在某些用例中,单个ActiveMQ Artemis代理每秒可以处理数千个客户端和数百万条消息。这可能是我需要做的下一个选择,我确实有其他一组代理连接在集群中,它们的行为类似于(主-备份)。