赞
踩
MQ如何保证消息不丢失要从三个方面来考虑
1 生产者:生产者要确保消息投递到MQ服务端,可以使用手动ACK,消息确认机制,认为消息持久化到硬盘,才能够认为生产者投递成功。
2 MQ服务端:需要将消息持久化到硬盘
3 消费者:消费者要确保消息消费成功,可以使用手动ACK,在RabbitMQ中,确认消息消费成功,删除该消息,在Rocket或Kafka中,需要提交offset。
那么当生产者投递消息时,MQ服务端宕机了怎么办?
生产者将投递消息以msg消息内容记录下来,生产者投递消息失败时,可以根据该日志记录实现补偿机制,获取到msg日志消息进行重试。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。