我已经完成了RabbitMQ队列ccing,以确定是否有消息发布到队列。如何将所有这些产品交付给消费者。
答案 0 :(得分:0)
虽然这个问题并不完全清楚,但让我解决一下如何(或是否)知道某个特定消息(让我们称之为消息x )是否已传递给消费者的问题。
首先,一些理论。
现在,RabbitMQ包含一些尝试减轻可能的故障模式的功能(主要使用确认),但没有任何缓解技术可以100%可靠。因此,虽然可靠性更高,但无法保证 - 您的应用程序需要能够应对偶尔出现故障的可能性。
问题中有一个固有的假设,消息x 的原始发布者关心消息x的消费者 < / em>的。这表明需要双向交换(例如RPC) - 一个从发布者到消费者一个用于消息x ,然后从消费者回到原始发布者(消息y )。当消费者处理消息x 时,原始发布者维护状态,并且消息y 响应的接收关闭了状态机。
如果目的是简单地发布消息流,则发布者既不应该知道消费者也不应该关心消息是否被消费。但是,从应用程序监控的角度来看,您可能会关心。您(作为系统管理员)可以做一些事情来查看是否正在使用消息: