RabbitMQ 常用工作模式

RabbitMQ 常用工作模式:

官网地址:https://www.rabbitmq.com/getstarted.html

Publish/Subscribe 发布与订阅模式

在这里插入图片描述
订阅模式

生产者会将消息发送到(Exchange )交换机,Exchange 类型是 Fanout,不同的队列注册到交换机中,不同的消费注册到不同的队列上。

  • P:生产者,也就是要发送消息的程序,但是不再发送到队列中,而是发送到 x 交换机中
  • C:消费者,消息的接收者,会一直等待消息的到来
  • Queue:消息队列、接收消息、缓存消息
  • Exchange:交换机 (X),一边,接收生产者发送的消息,另一边,处理消息。可以想作:生产者把消息交给一个特别的队列、这个特别的队列把消息递交给所有队列、或是将消息丢弃等。至于交换机会如何处理消息取决于交换机的类型。
    交换机只负责转发消息,不具备存储消息的能力,假如没有任何队列与 Exchange 绑定,或者没有符合路由规则的队列,那么消息将会丢失!
  • Exchange 常用类型:
    1、Fanout:广播,将消息交给所有绑定到交换机的队列。
    2、Direct:定向,把消息交给符合指定routing key 的队列。
    3、Topic:通配符,把消息交给符合routing pattern(路由模式)的队列。

使用场景:

一个消息需要同时通知两个不相同服务,或者一个功能需要同时更新 redis 和 mysql 。

Routing 路由模式

在这里插入图片描述
路由模式:

生产者把消息发送到交换机上,消息上携带了具体的 rouing key ,交换机的类型是 Direct。Exchange 会将消息携带 rouing key 跟队列上绑定rouing key 作比较,然后再将消息分配到不同 队列上。

  • 队列与交换机的绑定,绑定时需要指定一个 rouing key (路由key)
  • 生产者在向 Exchange 发送消息时,也需要指定 rouing key
  • Exchange 会把消息上的 rouing key 跟队列的 rouing key进行匹配,匹配上的队列才能接收到消息。

使用场景:

一个消息需要同时通知两个不相同服务,但功能要求只让一个服务接收,这个就可以使用路由模式。

Topics 主题模式

在这里插入图片描述
主题模式:

Topic 类型与 Direct 很相似,都是根据 rouing key 来匹配,但 Topic 的 rouing key 可以使用通配符。
Rouing key 通配符的语法 :* 星号代表一个单 # 井号代表一个或者多个单词。

lwc.liuliu.* 
//匹配
lwc.liuliu.liu
lwc.liuliu.ba

lwc.liuliu.#
///匹配
lwc.liuliu.liu.liu
lwc.liuliu.ba.ba
lwc.liuliu.liuliu
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赖伟春

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值