假设我有一个rabbitTemplate实例,我调用rabbitTemplate.send(Message)向RabbitMQ服务器发布消息。
我想做的是: 1.从发布者的角度来看,如何确保RabbitMQ收到消息? 2.在消费者方面,我使用相同的rabbitTemplate在线程中接收消息,我想在另一个线程中手动确认消息。
有没有办法通过RabbitTemplate手动回复消息?
感谢您的帮助。
答案 0 :(得分:2)
RabbitMQ是异步的,所以没有办法等待"使消息在经纪人中得到保障;您可以启用发布者确认以确认消息已传递到队列。请参阅documentation for more information。
使用其中一种receive*()
方法时,您无法手动确认消息。您必须使用execute()
方法下拉到本机API;在回调中,执行channel.basicGet(queue, false)
以接收消息,然后channel.basicAck(deliveryTag)
。