watchman icon indicating copy to clipboard operation
watchman copied to clipboard

看代码的疑惑?

Open zt3862266 opened this issue 8 years ago • 1 comments

在 setupChannel函数中 err = channel.Qos(1, 0, false) 在这里设置的 prefechtCount为1 那么当单条消息未ACK的时候,是无法consumer下一条消息的 因此 receiveMessage 中,获取消息的速度其实还是收到了消费的影响,未能实现真正的高并发消费

zt3862266 avatar Oct 23 '17 13:10 zt3862266

在 setupChannel函数中 err = channel.Qos(1, 0, false) 在这里设置的 prefechtCount为1 那么当单条消息未ACK的时候,是无法consumer下一条消息的 因此 receiveMessage 中,获取消息的速度其实还是收到了消费的影响,未能实现真正的高并发消费

为了保证消息投递的可靠性,必须要保证每条消息都ack。也可以这样来想,假如当前消息未ack,则说明consumer端不稳定,此时让消息堆积在mq中而不是直接push出去是更合理的做法。

wenfei3 avatar Feb 19 '19 07:02 wenfei3