RabbitMQ-工作模式

概述

RabbitMQ有以下几种工作模式

  1. Work Queues 工作队列
  2. Publish/Subscribe 发布订阅
  3. Routing 路由
  4. Topics 通配符
  5. Header Header转发器
  6. RPC 远程过程调用

1. Work Queues

在这里插入图片描述

工作队列模式

  1. 一个生产者将消息发给一个队列
  2. 多个消息者共同监听一个队列的消息
  3. 消息不能被重复消费
  4. rabbit采用轮询的方式将消息是平均发送给消费者

2. Publish/subscribe

  • type: fanout
    在这里插入图片描述

发布订阅模式

  1. 一个生产者将消息发给交换机
  2. 与交换机绑定的有多个队列,每个消费者监听自己的队列
  3. 生产者将消息发给交换机,由交换机将消息转发到绑定此交换机的每个队列,每个绑定交换机的队列都将接收到消息
  4. 如果消息发给没有绑定队列的交换机上消息将丢失

区别

  1. publish可以定义一个交换机绑定多个队列,一个消息可以发送给多个队列
  2. work queues无需定义交换机,一个消息一次只能发送给一个队列
  3. publish功能更强大,也可以将多个消费者监听同一个队列实现work queues的功能

3.Routing

在这里插入图片描述

路由模式

  1. 一个交换机绑定多个队列,每个队列设置routingkey,并且一个队列可以设置多个routingkey
  2. 每个消费者监听自己的队列
  3. 生产者将消息发给交换机,发送时需要指定routingkey的值,交换机来判断routingkey的值和哪个队列的routingkey相等,相等则将消息转发给该队列

4.Topics

在这里插入图片描述

通配符模式

  1. 大概规则同路由模式
  2. 匹配规则如下
符号# : 匹配0个或者多个词,每个词用 . 分割
inform.# : inform.sms、inform.sms.email
inform.#.email.# :中间是email的都可以

符号* : 只能匹配一个词
inform.* : inform.sms

5.Header

header模式

  1. 与routing区别是没有routingkey,而是用header中的key/value对匹配队列

代码例子

  1. 队列与交换机绑定时
    在这里插入图片描述
  2. 通知时:该消息给到交换机中有这些属性的队列
    在这里插入图片描述

6. RPC

在这里插入图片描述

RPC客户端远程调用服务端

使用MQ可以实现RPC的异步调用,基于Direct交换机实现,流程如下

  1. 客户端既是生产者又是消费者,向RPC请求队列发送RPC调用消息,同时监听RPC响应队列
  2. 服务端监听RPC请求队列的消息,收到消息后执行服务端的方法,得到方法返回的结果
  3. 服务端将RPC方法的结果发送到RPC响应队列

A

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值