MQ 是一种新的通信模式
Message Queue(MQ)一种新的通信模式。
Message Queue(MQ)的主要优势在于:
异步通信:异步,减少线程等待。
系统解耦:系统不直接调用,降低依赖,即使是不在线也能保持通信最终完成。
削峰平谷:压力大的时候,缓冲部分请求信息。
可靠通信:提供多种消息模式、服务质量、顺序保障等。
系统间的通信方式,主要有:
文件:不方便,不及时。
共享内存
IPC
Socket:使用麻烦。
数据库:不实时。
RPC:调用关系复杂,同步处理,压力大的时候无法缓冲。
而 Message Queue(MQ)刚好解决了上述的问题,异步的消息通信、简化参与方的复杂依赖关系、请求量大时,可以缓冲、能保障消息的可靠性和顺序。
消息的处理模式主要有两种:
点对点:PTP,Point-To-Point,对应于 Queue
发布订阅:PubSub,Publish-Subscribe, 对应于 Topic
消息处理的保障,主要包括三种:
至少一次,消息可能丢失但是不会重新发送;
至少一次,消息不会丢失,但是可能会重复;
精确一次,每条消息肯定会被传输一次且仅一次。
上述三种是属于消息语义的,不是业务语义的。
什么意思呢? 就是说第三种:精确一次,如果消息发送到了,但是业务处理失败了,在消息系统中是已经成功的,不会再发送。
所以,一般业务上更多的是采用至少一次,然后加上去重的处理,来避免多次消费的情况,也避免消息丢失的情况。
版权声明: 本文为 InfoQ 作者【风翱】的原创文章。
原文链接:【http://xie.infoq.cn/article/224ba6fd1cbabc8da6a551b2e】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论