RabbitMQ 的四种交换机模式

250 阅读1分钟

消息处理过程

RabbitMQ 的消息处理流程

20190629205014864.png

RabbitMQ的四种交换机

1.Direct exchange 直连交换机

一个对列和一个交换机进行绑定,同时还能指定routing_key,来实现生产者通过绑定DirectExchange,在绑定routing_key,可以将消息送到多个对列里面去。

20190629213359158.png

2.Fanout exchange 扇形交换机

通过FanoutExchange绑定多个对列,可以实现对多个对列进行广播发送消息。

20190629221037904.png

3.Topic exchange 主体交换机

发送到主题交换机上的routing_key需要携带规则,主题交换机可以根据这个规则把消息发送到指定对列。 交换机和队列绑定时候设置的binding_key需要采用*.#*…的规则。

  • *代表一个单词
  • 3代表任意数量的单词。 如果通配符设置为#的话,这对列将会无视路由键接受所有的消息。

4.Headers exchange 首部交换机

头交换机完全忽视routing_key,使用消息的属性来进行分发,是根据headers属性进行匹配的。

//map为绑定的规则
        Map<String, Object> map = new HashMap<>();
        map.put("headers1", "value1");
        map.put("headers2", "value2");
//whereAll表示需要满足所有条件
BindingBuilder.bind(headersQueue()).to(headersExchange()).whereAll(map).match();