RabbitMQ如何在消费者获取任务后未处理完前就挂掉时,保证数据不丢失?

RabbitMQ如何在消费者获取任务后未处理完前就挂掉时,保证数据不丢失?

请先 登录 后评论

1 个回答

李奡 | 奈学教育 - 奈学教育 | 讲师
擅长:大数据
为了预防消息丢失,rabbitmq提供了ack
即工作进程在收到消息并处理后,发送ack给rabbitmq,告知rabbitmq这时候可以把该消息从队列中删除了。
如果工作进程挂掉 了,rabbitmq没有收到ack,那么会把该消息 重新分发给其他工作进程。
不需要设置timeout,即使该任务需要很长时间也可以处理。

ack默认是开启的,工作进程显示指定了no_ack=True
请先 登录 后评论