消息队列的简单理解与各种消息队列的对比

消息队列,MessageQueue,简称MQ。消息队列中间件是分布式系统中重要的组件。

消息队列有什么用?

解耦 、削峰 、异步

应用解耦:消息生产者将消息写入消息队列,需要消息的消费者从消息队列中获取,消息生产者不需要做修改。

异步处理:消息生产者将消息写入消息队列,非必要的业务逻辑以异步的方式运行,加快响应速度。
削峰限流:系统慢慢的按照数据库能处理的并发量,从消息队列中慢慢拉取消息。避免流量过大导致应用系统挂掉的情况

消息队列的通讯模式

1) 点对点通讯:点对点方式是最为传统和常见的通讯方式,它支持一对一、一对多、多对多、多对一等多种配置方式,支持树状、网状等多种拓扑结构。

2) 多点广播:MQ适用于不同类型的应用。其中重要的,也是正在发展中的是"多点广播"应用,即能够将消息发送到多个目标站点(Destination List)。可以使用一条MQ指令将单一消息发送到多个目标站点,并确保为每一站点可靠地提供信息。MQ不仅提供了多点广播的功能,而且还拥有智能消息分发功能,在将一条消息发送到同一系统上的多个用户时,MQ将消息的一个复制版本和该系统上接收者的名单发送到目标MQ系统。目标MQ系统在本地复制这些消息,并将它们发送到名单上的队列,从而尽可能减少网络的传输量。

3) 发布/订阅(Publish/Subscribe)模式:发布/订阅功能使消息的分发可以突破目的队列地理指向的限制,使消息按照特定的主题甚至内容进行分发,用户或应用程序可以根据主题或内容接收到所需要的消息。发布/订阅功能使得发送者和接收者之间的耦合关系变得更为松散,发送者不必关心接收者的目的地址,而接收者也不必关心消息的发送地址,而只是根据消息的主题进行消息的收发。

push模式和pull模式

推(push)模式是一种基于C/S机制、由服务器主动将信息送到客户器的技术。
1. push模式由服务器发起。push模式可以让信息主动、快速地寻找用户/客户端,信息的主动性和实时性比较好。但精确性较差,可能推送的信息并不一定满足客户的需求。
2. pull模式,消费者可以灵活控制消费的速率。

各种消息队列的对比

当前使用较多的消息队列有Kafka、RabbitMQ、RocketMQ、ActiveMQ、ZeroMQ、MetaMQ等

各个消息队列对比如下:

注:  以下的 HA 表示高可用性.(High Availability)

参考资料:

  1. 大型网站架构系列:分布式消息队列   https://www.jianshu.com/p/689ce4205021

  2. 消息队列的使用场景 消息队列的使用场景是怎样的? - 知乎

  3. 消息队列的两种模式 消息队列的两种模式_和大黄的博客-CSDN博客

  4. 常用消息队列介绍及对比  常见消息队列介绍以及比较总结_51CTO博客_常见的消息队列
  5. 消息队列在大型分布式系统中的实战精髓  一网打尽消息队列在大型分布式系统中的实战精髓
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值