写点什么

MQ 是一种新的通信模式

用户头像
风翱
关注
发布于: 4 小时前

Message Queue(MQ)一种新的通信模式。

Message Queue(MQ)的主要优势在于:

  • 异步通信:异步,减少线程等待。

  • 系统解耦:系统不直接调用,降低依赖,即使是不在线也能保持通信最终完成。

  • 削峰平谷:压力大的时候,缓冲部分请求信息。

  • 可靠通信:提供多种消息模式、服务质量、顺序保障等。


系统间的通信方式,主要有:

  • 文件:不方便,不及时。

  • 共享内存

  • IPC

  • Socket:使用麻烦。

  • 数据库:不实时。

  • RPC:调用关系复杂,同步处理,压力大的时候无法缓冲。


而 Message Queue(MQ)刚好解决了上述的问题,异步的消息通信、简化参与方的复杂依赖关系、请求量大时,可以缓冲、能保障消息的可靠性和顺序。


消息的处理模式主要有两种:

  • 点对点:PTP,Point-To-Point,对应于 Queue

  • 发布订阅:PubSub,Publish-Subscribe, 对应于 Topic


消息处理的保障,主要包括三种:

  • 至少一次,消息可能丢失但是不会重新发送;

  • 至少一次,消息不会丢失,但是可能会重复;

  • 精确一次,每条消息肯定会被传输一次且仅一次。


上述三种是属于消息语义的,不是业务语义的。

什么意思呢? 就是说第三种:精确一次,如果消息发送到了,但是业务处理失败了,在消息系统中是已经成功的,不会再发送。

所以,一般业务上更多的是采用至少一次,然后加上去重的处理,来避免多次消费的情况,也避免消息丢失的情况。


发布于: 4 小时前阅读数: 5
用户头像

风翱

关注

还未添加个人签名 2017.11.24 加入

勇于尝试,持续成长

评论

发布
暂无评论
MQ是一种新的通信模式