注:没有注册中心,总共只分为三个角色,product,server,customer。ui
消息队列,等同于rocketmq中的topicserver
生产者产生的消息并非直接发送给消息队列Queue的,而是要通过Exchange(交换器),由Exchange再将消息路由到一个或多个Queue,固然这里还会对不符合路由规则的消息进行丢弃掉,这里指的是后续要谈到的Exchange Type。那么Exchange是怎样将消息准确的推送到对应的Queue的呢?那么这里的功劳最大的当属Binding,RabbitMQ是经过Binding将Exchange和Queue连接在一块儿,这样Exchange就知道如何将消息准确的推送到Queue中去。简单示意图以下所示:blog
主要介绍下Topic的路由规则队列
topic这个规则就是模糊匹配,能够经过通配符知足一部分规则就能够传送。它的约定是:路由
类型名称 | 类型描述 |
fanout | 把全部发送到该Exchange的消息路由到全部与它绑定的Queue中 |
direct | Routing Key==Binding Key |
topic | 我这里本身总结的简称模糊匹配 |
headers | Exchange不依赖于routing key与binding key的匹配规则来路由消息,而是根据发送的消息内容中的headers属性进行匹配。 |