fishtrip/watchman

看代码的疑惑?

Opened this issue · 1 comments

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

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

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