RabbitMQ总结(常见问题)

RabbitMQ总结(常见问题)

如何做到消息队列消息不丢失?

首先我们要了解消息传递的过程以及丢失的情况。

在这里插入图片描述

针对以上三种消息丢失的情况,都有对用的处理方案

1、针对消息传入过程丢失
开启confirm模式,在application.properties中做如下配置

spring.rabbitmq.host = 192.168.99.41
spring.rabbitmq.port = 5672
spring.rabbitmq.username = test
spring.rabbitmq.password = test
#开启confirm 确认机制
spring.rabbitmq.publisher-confirms=correlated

同时在生产者开启消息发送成功确认机制(后面补充)

2、MQ自身弄丢消息时的解决方法

持久化消息队列,发送消息时做到持久化到磁盘并设置queue、message持久化,即使rabbitmq服务器宕机,再次重启,会从磁盘恢复到queue,避免数据丢失

3、消费者自身弄丢消息的解决方式

关闭自动ACK,使用手动ACK。更改为手动ACK模式,每次处理完消息之后,再手动ACK一下。

spring.rabbitmq.host = 192.168.99.41
spring.rabbitmq.port = 5672
spring.rabbitmq.username = **
spring.rabbitmq.password = **
#手动ack模式
spring.rabbitmq.listener.simple.acknowledge-mode=manual

消费端手动ack(后面补充)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值