我们已经使用了兔子一段时间了,在最近部署之后创建了一个新的扇出交换,我们对一些非常好奇的东西感到非常震惊:在管理控制台和REST API中的实时图形中,我们尽管队列大小在0左右徘徊,但是队列一直发布的帖子少于发送/执行的帖子!
来自REST API的示例统计信息:
"message_stats": {
"ack": 149063323,
"ack_details": {
"rate": 305.0
},
"deliver": 149089898,
"deliver_details": {
"rate": 318.8
},
"deliver_get": 149089898,
"deliver_get_details": {
"rate": 318.8
},
"disk_reads": 4058297,
"disk_reads_details": {
"rate": 0.0
},
"disk_writes": 149084451,
"disk_writes_details": {
"rate": 227.6
},
"publish": 142374350,
"publish_details": {
"rate": 129.6
},
"redeliver": 5379,
"redeliver_details": {
"rate": 0.0
}
},
在我们担心的时间段内,队列已被归为0。
以下是Web管理控制台显示的内容:
据我们所知,我们没有多次收到邮件,因此我们目前认为这是统计信息收集或报告中的错误。我们还没有窗口来重新启动此节点,因为它是一个实时系统。我们还没有发现任何不良影响。
Gory详细信息:我们的队列有超过12个连接的240个用户,并且通过绑定到两个队列的扇出交换发布。这两个队列都表现出这种行为。队列的发布率与交易所的发布率相匹配。这两个队列都有一个死信交换/队列组合,并且需要确认。扇出交换,其中一个队列是新的,并且对这些消息的发布方式进行了一些更改(用于发布到路由到旧队列的默认交换机,现在我们发布到新的扇出交换机以同时发布这两个消息旧的和新的队列)。对于旧队列,消费者代码没有太大变化(少插入一个postgres表),新队列运行的代码与旧队列非常相似(只插入一个postgres表)。 / p>
这些统计数据是否可能在越野车条件之外的野外遇到?这可能是由于地形不好造成的吗?这样的状态会带来什么,它会产生什么样的副作用,以及会产生什么类型的设置?