##ACK与泄露
ACK的原理由消费者发送回执,确认消费成功.发送者就不会在重复发送.
而rabbitMQ默认形式就是ACK的模式.所以说.上一节写的案例代码..是有BUG的
在接收消息函数时.需通过如下方式传回ACK信息
function 接收消息回调($message)
{
$message->delivery_info['channel']->basic_ack($message->delivery_info['delivery_tag']);
}
代码的意思为,根据消息的delivery_info['channel']
找到通道,并调用通道的basic_ack
方法发送消息的确认内容.
##泄露问题
如果我们只是接受了消息,并进行处理.但是处理完后.没有发起ack就会导致服务器上的消息一直堆积.服务器会发送新的消息.同时会记录当前的这个链接有哪些消息一直还没回复.(服务器认为你会回复,一直等待)
如果消费者进程停止掉重启..就会重新接收所有消息
如需转载请注明: 转载自26点的博客
本文链接地址: rabbitMQ消息队列 – ACK与泄露
转载请注明:26点的博客 » rabbitMQ消息队列 – ACK与泄露