ActiveMQ";冻结“;关于队列消费的消息
ActiveMQ:5.10.2在ServiceMix的Karaf OSGi中 卡哈卜坚持 默认代理设置。 连接中的默认设置(tcp://x.x.x.x:61616) activemq.xml中预定义了16个队列 到ActiveMQ的两个客户端连接。一个用于生产者会话,一个用于消费者会话 生产者向所有队列发送消息 16个使用者会话使用消息 一切正常,但: 如果我将消费者的数量减少到1(或2或3,我不知道阈值在哪里),那么来自1个队列的消息将被消费,而来自另一个队列的消息将被存储。 一段时间过去了,我看到了这样的画面:ActiveMQ";冻结“;关于队列消费的消息,activemq,Activemq,ActiveMQ:5.10.2在ServiceMix的Karaf OSGi中 卡哈卜坚持 默认代理设置。 连接中的默认设置(tcp://x.x.x.x:61616) activemq.xml中预定义了16个队列 到ActiveMQ的两个客户端连接。一个用于生产者会话,一个用于消费者会话 生产者向所有队列发送消息 16个使用者会话使用消息 一切正常,但: 如果我将消费者的数量减少到1(或2或3,我不知道阈值在哪里),那么来自1个队列的消息将被消费,而来自另一个队列的消息将被存储。 一段时间过去了,
谢谢。。我找到了它是什么 只是超出了可用内存 我没有设置-Xms和-Xmx,所以它的最大堆容量只有512mb
当存储和未使用的消息大小接近顶部时,我会得到这些行为 如果我只有一个队列并从中生成和使用消息,我也不会看到任何冻结。因此,只有当存在多个包含消息的队列且并非所有队列都在使用消息时,才会发生这种情况……请注意队列的负载平衡。它看起来像是每个消费者将消息安排到内部队列中