消息中间件

rabbitmq如何保证消息不丢失?

先要看生产者发送消息再哪个环节会丢失?

1 生产者发送消息到交换机失败(生产者服务宕机)

2 交换机到队列失败

3队列中消息丢失

消息失败后怎么处理呢?

可以设置回调方法重发

记录日志

保存到数据库后定时发放,成功后删除表中数据

MQ宕机了会导致消息的丢失

mq是内存存储消息,要是宕机了话消息会丢失,我们需要开启消息持久化(持久化交换机,持久化队列,持久化消息)

消费者消费失败

消费者消息确认机制(手动ack 自动ack none)


RabbitMQ消息的重复消费问题如何解决

网络抖动和消费者挂了

  • 每条消息设置一个唯一id  处理消息时先在数据库中查一下,没有的话再处理
  • 幂等方案:比如说加锁,分布式锁,数据库锁(但是加锁会影响性能,一般不采用这种方案)

Rabbitmq死信交换机

消息没有被消费,消息过期,队列满了就形成了死信


如果有100万条数据堆积再mq,怎么解决?

1增加消费者,提高消费速度

2再消费者内开始线程池加快处理消息的速度

3扩大队列容积,提高堆积上限

使用惰性队列 接收到消息后存入磁盘而非内存,消费者消费的时候才会从磁盘中读取并加载到内存,支持数百万条的消息存储。


rabbitmq高可用机制有了解过吗

搭建集群,普通集群 镜像集群  仲裁队列

镜像集群本质上是主从模式,交换机 队列 以及消息都是会再镜像节点之间同步备份的,创建队列的节点称为主节点,备份到其他节点称为镜像节点,主节点也可能是另一个队列的镜像节点。

仲裁队列,同步的是强一致性。66fe7e65a6364d56886a1716e26a4421.jpg


Kafka如何保证消息不丢失?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值