15.每日一读-RabbitMQ的六种队列模式与应用场景

1.MQ的组件:

  1. 生产者:消息提供者
  2. 消费者:消息使用者
  3. MQ服务器:管理队列、消息及相关信息
  4. 消息:程序间通讯的数据
  5. 队列:消息存放的容器,消息是先进先出的
  6. 交换机:用于分发消息

2.RabbitMQ工作模式

2.1 简单模式

在这里插入图片描述

无交换机参与。实际工作中几乎用不到。生产者通过MQ将消息放入队列,队列发送给消费者。

2.2 工作队列

在这里插入图片描述

类似负载均衡。在多个消息的情况下,工作队列模式会将消息分发给不同的消费者,每个消费者会收到不同的消息,
并且根据处理消息的速度来接收消息的数量,进而让消费者程序发挥最大性能。适用于集群环境中做异步处理,能发挥每台服务器的性能。
高并发情况下,产出消息挤压,可水平扩容,增加消费者实例。在这里插入图片描述

场景:12306的短信服务。

2.3 发布订阅

在这里插入图片描述

有交换机参与。生产者的消息,消费者均能接收到。
1.生产者不直接与队列绑定,而是将数据发至交换机
2.交换机用于将数据按某种规则送入与之绑定的队列,进而让消费者使用。
3.交换机将无差别的将所有消息送入与之绑定的队列,所有消费者拿到的消息完全相同。

场景:适用于数据大规模分发的情况。中国气象局提供气象信息,腾讯,网易拿到相同的气象信息。

2.4 路由模式

在这里插入图片描述

发布订阅模式的变种。交换机根据routing key有条件将数据筛选后发给消费者队列。
场景:日志。消费者是监控系统,error的错误日志就会放到消费者队列中。

2.5 主题模式

在这里插入图片描述

路由模式的升级版。在routing key上添加通配符,具有模糊查询。
*匹配单个关键字
#匹配所有关键字

能用路由不用主题。

2.6 RPC同步通信

在这里插入图片描述

该过程线层阻塞。虽然MQ是异步的,一般生产者将消息送至消息队列候不关心消费者什么时候消费,
但有的情况下需要得到消费者的反馈。该模式需要两个队列,没有固定的生产者、消费者。实际用得很少,因为有dubbo。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值