【动力节点】RabbitMQ笔记一7-11 RabbitMQ工作模型

7. RabbitMQ工作模型

动力节点最新RAbbitMQ视频

broker 相当于mysql服务器,virtual host相当于数据库(可以有多个数据库)
queue相当于表,消息相当于记录。

消息队列有三个核心要素: 消息生产者消息队列消息消费者
生产者(Producer):发送消息的应用;(java程序,也可能是别的语言写的程序)
消费者(Consumer):接收消息的应用;(java程序,也可能是别的语言写的程序)
代理(Broker):就是消息服务器,RabbitMQ Server就是Message Broker;
连接(Connection):连接RabbitMQ服务器的TCP长连接;
信道(Channel):连接中的一个虚拟通道,消息队列发送或者接收消息时,都是通过信道进行的;
虚拟主机(Virtual host):一个虚拟分组,在代码中就是一个字符串,当多个不同的用户使用同一个RabbitMQ服务时,可以划分出多个Virtual host,每个用户在自己的Virtual host创建exchange/queue等;(分类比较清晰、相互隔离)
交换机(Exchange):交换机负责从生产者接收消息,并根据交换机类型分发到对应的消息队列中,起到一个路由的作用;
路由键(Routing Key):交换机根据路由键来决定消息分发到哪个队列,路由键是消息的目的地址;
绑定(Binding):绑定是队列和交换机的一个关联连接(关联关系);
队列(Queue):存储消息的缓存;
消息(Message):由生产者通过RabbitMQ发送给消费者的信息;(消息可以任何数据,字符串、user对象,json串等等)

8. RabbitMQ交换机类型

Exchange(X) 可翻译成交换机/交换器/路由器

8.1 RabbitMQ交换器 (Exchange)类型

  1. Fanout Exchange(扇形)
  2. Direct Exchange(直连)
  3. Topic Exchange(主题)
  4. Headers Exchange(头部)

8.2 Fanout Exchange

8.2.1 介绍

Fanout 扇形的,散开的; 扇形交换机
投递到所有绑定的队列,不需要路由键,不需要进行路由键的匹配,相当于广播、群发;

8.2.2 示例

8.3 Direct Exchange

8.3.1 介绍

根据路由键精确匹配(一模一样)进行路由消息队列;

8.3.2 示例

8.4 Topic Exchange

8.4.1 介绍

通配符匹配,相当于模糊匹配;
#匹配多个单词,用来表示任意数量(零个或多个)单词
匹配一个单词(必须有一个,而且只有一个),用.隔开的为一个单词:
beijing.# == beijing.queue.abc, beijing.queue.xyz.xxx
beijing.
== beijing.queue, beijing.xyz

发送时指定的路由键:lazy.orange.rabbit

8.4.2 示例


8.5 Headers Exchange (用的比较少)

8.5.1 介绍

基于消息内容中的headers属性进行匹配;

8.5.2 示例

绑定参考代码:

 Map<String, Object> headerValues = new HashMap<>();headerValues.put("type", "m");headerValues.put("status", 1);
 return 
 BindingBuilder._bind_(queueA).to(headersExchange).whereAll(headerValues).match(); 

发送参考代码

MessageProperties messageProperties = new MessageProperties();
        messageProperties.setHeader("type"
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

牛仔码农@

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

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

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

打赏作者

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

抵扣说明:

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

余额充值