我需要从三点去考虑,
- 生产者弄丢了数据,生产者将消息发送的Exchange并且路由到队列
- 队列需要将消息给它持久化
- 消费者要成功消费队列中的消息
针对生产者:
RabbitMQ提供了confirm机制,保证了消息消息发送的Exchange交换机,那么还提供了return机制,可以保证消息从exchange路由到队列中,如果发送失败或者是路由失败时它会提供一个回调函数,可以做重试或者是一些补偿机制,
针对队列做持久化
只需要在发送消息之前,给消息BasicProperties 中的 deliveryMode 属性设置为 2,那么这样呢,即便RabbitMQ重启消息也不会丢失文章来源:https://www.toymoban.com/news/detail-549109.html
针对消费者
他需要开启手动ack,在消息被成功消费后呢,需要手动的基于channel执行a ck,那保证消息是可以被正常消费。文章来源地址https://www.toymoban.com/news/detail-549109.html
到了这里,关于rabbitmq如何保证消息的可靠性传输(简述版本)?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!