rabbitmq内部消息分发机制

一:消息生产者(producer)

1.消息的组成

  1. body(消息体)
  2. label(标签)
    1. routerKey(路由键)
    2. queue:queue1

2.消费者连接服务器(connection)

  1. 而一个连接中有很多信道 很像SqlSession.openSession创建一次会话

二 什么是虚拟主机

1.一台rabbitmq可以有多个虚拟主机  比如192.168.121.122:5692服务器

如何解释虚拟主机呢? 我们大概的引入数据库的概念 列如我一个数据库的服务器 是不是可以有多个数据组成?每个数据库相对独立,这和虚拟主机的概念差不多

三 虚拟主机中有什么

1.exchange(也称为交换机)

1.交换机有4种绑定规则:

fanout:只要这个交换机绑定的所有的消息队列都会收到同一份消息

direct:这是一种点对点的消息传递  会有一个交换机和消息队列路由键    如果生产者的带来的路由键匹配交换机和消息队列路由键 则会发送消息到那个消息队列

一个消费者发送了一条消息 他的路由键是:order  到达交换机 交换机和消息队列中间也有一个路由键的绑定(bindKey) 如果也是order 则这一条消息就会发送到这个消息队列中

topic:这是一种模糊匹配的消息传递

举个例子

一个交换机和两个队列binding 路由键分别为:com.#,*.order.*  这个时候一个消息生产者携带com.order.create

这条消息会发送到连个消息队列

*:单个单词匹配  以.号分割  在上面那个示例中cn.com.order.create 则不会到达*.order.*绑定的消息队列

#:全部单词匹配 以.号分割 com.不管后面是什么 都会匹配消息队列

headers:根据携带的头部信息来进行匹配

2.binding(绑定)

1.就是交换机与消息队列进行绑定

3.queue(消息队列)

四 消费者消费消息

1.列如我们有连个系统一个是order系统 sms系统

2.这两个系统分别监听消息队列 当监听到自己绑定的队列中有消息会做相应的处理

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值