我有两个关于rabbitmq消费者(接收者)的问题:
由于
答案 0 :(得分:2)
为了达到你想要的目标很简单,这是设计在rabbitmq(只是确保你不要自动确认)。消息保留在队列中,直到它被确认。所以消费者基本上应该完成处理消息然后确认它。如果消费者在处理期间死亡,则消息未被确认并且它被重新排队。下一次消费者启动时,它会获得该消息。当然,如果你有多个相同的实例(为了简单起见)消费者,那么up的那个实例会获取重新排队的消息。它很好地解释了in the second tutorial on rmq website。
声明队列是幂等操作,如果队列已经存在,则会创建队列。如果消费者是第一个创建队列的消费者,那很好,它通常通常它是如何工作的。发布者实际上甚至(不需要)知道队列,它只关心交换和路由密钥。它也不关心是否有人在听,它只是发布消息。消费者需要告诉它想要绑定队列的路由密钥。