**
RabbitMQ架构图
**
(这个图对于理解rabbitmq非常有用~)
提供方
消息提供方发送消息给RabbitMQ(Server端),server会根据你channel连接到的虚拟机来去找交换机,交换机拿到消息后会根据设置的routingKey把消息推送到符合规则的Queue,换句话说,交换机的职责就是把信息推送到queue,并不储存信息。这种映射关系是通过队列和交换机绑定的方式来实现的。
简单的过程如下
1.声明交换机和队列;
2.声明绑定关系:把队列绑定到交换机上(意思就是把哪些队列的消息交给该交换机做转发,至于怎么让交换机怎么管理,就需要在绑定这个步骤中设置路由规则了)
3.发布消息后,交换机会拿着你的信息和你提供的routingKey规则取做消息分发;
消费方
消费方客户端会启动一个监听器来监听指定队列,首先建立信道连接到指定虚拟机里,然后设置监听哪些队列,一旦消息提供方把消息通过交换机发布到队列中,消费者就会根据队列名自动从指定的队列消费消息
常用模式的区别
1.Publish/Subscribe发布与订阅模式与路由模式的区别在于交换机类型是广播类型fanout,fanout类型的交换机不对routingKey做处理;
2.Routing路由模式和Topics通配符模式区别在于一种是精确匹配消息的路由机制,通配符模式则更有扩展性;
其他注意点:
1.需要先启动消息提供者来创建出队列,否则监听工程会因为找不到指定队列报错;
2.Topics通配符模式中#代表通配任意长度,*只能统配一个单词,命名规则是按照英文的.来区分的;
学习完总结一下,未完。