MQ

2020-02-17  本文已影响0人  mrli1220

1.信息丢失怎么办?

数据丢失问题可能出现在生产者、MQ、消费者中。

1.消息在传递过程中消失

此时可以选择用RabbitMQ提供的事务功能,就是生产者发送数据之前开启事务 `channel.txSelect` ,然后发送信息,如果信息没有被RabbitMQ成功接收,生产者收到异常报错,此时就回滚事务,`channel.txRollback`。如果成功收到消息,就可以提交事务`channel.txCommit`

但是问题是,RabbitMQ 事务机制(同步)一搞,基本上吞吐量会下来,因为太耗性能

2.RabbitMQ 收到信息,暂存内存中,还没消费,自己挂了,内存中数据丢失

3.消费者得到这个消息,还没消费,就挂了,MQ以为信息已经被处理

上一篇 下一篇

猜你喜欢

热点阅读