activemq 控制面板里Number Of Pending Messages、 Messages Enqueued等含义解释

项目中在API登录接口采用了ActiveMQ消息队列中间件,采用三台MQ做集群

 

执行API登录脚本前的消息数目

执行一次脚本后

刚生产的消息在8161实例上消费了

Number Of Consumers  :表示消费者数量这个是消费者端的消费者数量

Number Of Pending Messages等待消费的消息,这个是当前未出队列的数量; 可以理解为总接收数-总出队列数

Messages Enqueued进入队列的消息;( 这个数量只增不减,重启acmq后会清零)进入队列的总数量,包括出队列的。 这个数量只增不减

Messages Dequeued :出了队列的消息  可以理解为是消费这消费掉的数量 (重启acmq后会清零)

一般情况下,

1、当有生产者在发送消息,同时有消费者在消费消息的话,Number Of Pending Messages=0,Messages Enqueued=Messages Dequeued.即:等待消费数量为0,入队的和出队的消息相等(最终)。

2、当有生产者在发送消息,没有消费者的时候,Number Of Pending Messages=Messages Enqueued.即:入队的消息数等于待消费的数。

3、当acmq重启后,Messages Enqueued=Messages Dequeued = 0(即:清零),如果设置了消息的持久化,那么重启前没有被消费的消息会在Number Of Pending Messages中显示。


这个要分两种情况理解
在queues里它和进入队列的总数量相等(因为一个消息只会被成功消费一次),如果暂时不等是因为消费者还没来得及消费。
在 topics里 它因为多消费者从而导致数量会比入队列数高。
简单的理解上面的意思就是
当有一个消息进入这个队列时,等待消费的消息是1,进入队列的消息是1。
当消息消费后,等待消费的消息是0,进入队列的消息是1,出队列的消息是1.
在来一条消息时,等待消费的消息是1,进入队列的消息就是2.

没有消费者时  Pending Messages   和 入队列数量一样
有消费者消费的时候 Pedding会减少 出队列会增加
到最后 就是 入队列和出队列的数量一样多
以此类推,进入队列的消息和出队列的消息是池子,等待消费的消息是水流。

posted @ 2017-06-19 15:02  Agoly  阅读(1719)  评论(0编辑  收藏  举报