本文来说下MQ如何防止消息丢失
MQ消息丢失问题
由于网络问题,我们很难保证生产者发送的消息能100%到达消息队列服务器,也就是说有消息丢失的可能性,因此,生产者就必须具有消息丢失检测和重发机制,也就是我们常说的消息队列的事务机制。不能把可靠性的保证全部交给TCP,TCP只保证了传输层的可靠传输,但是无法保证与应用层的交互是否出错TCP无法给应用层任何反馈,因此必须在应用层处理差错。
同步的事务一停止等待
所谓停止等待协议就是没发送完一组数据后,等待对方确认并且收到确认后,再发送下一组数据。
同步的事务一连续ARQ
类似于TCP的滑动窗口模型
异步的事务—回调机制
生产者在发送消息的时候,注册一个回调函数,这样生产者便不用停下来等待确认了,而是可以一直持续发送消息,当消息到达消息队列服务器的时候,服务器便会调用生产者注册的回调函数,告知生产者消息发送成功了还是失败了,进而做进一步的处理,从而提高了并发量。
本文小结
本文介绍了MQ防止消息丢失的几种解决方案。