RabbitMQ提供了四种类型的交换器(Exchange):
1. Direct(直连)交换器:
- 该类型的交换器非常简单,它将消息按照路由键(Routing Key)精确地路由到与之绑定的队列上。
- 生产者发送消息时,需要指定一个特定的路由键。
- 队列与交换器的绑定需要指定一个固定的路由键,只有消息的路由键与绑定的路由键完全匹配时,消息才会被路由到这个队列。
2. Fanout(扇出)交换器:
- 该类型的交换器将消息广播到所有与之绑定的队列上,无论消息的路由键是什么。
- 生产者发送消息时,不需要指定路由键,交换器接收到消息后,会将消息广播到所有绑定的队列中。
3. Topic(主题)交换器:
- 该类型的交换器将消息根据路由键的模式进行匹配和路由。
- 路由键可以使用通配符进行模式匹配,*(星号)表示匹配一个单词,#(井号)表示匹配多个单词。
- 生产者发送消息时,需要指定一个路由键,交换器根据路由键与绑定的队列的规则进行匹配,将消息路由到符合条件的队列中。
4. Headers(首部)交换器:
- 该类型的交换器根据消息的首部属性进行匹配和路由,而不是路由键。
- 首部属性是一个由键值对组成的消息标识。交换器根据消息的首部属性与绑定时指定的参数进行匹配,并将消息发送到与之匹配的队列中。
- 生产者发送消息时,需要附带一组首部属性,交换器根据这些首部属性进行匹配。
通过这四种类型的交换器,RabbitMQ提供了灵活的消息路由机制,可以根据实际需求进行精确的消息分发和路由。
向大家推荐《Activiti工作流实战教程》:https://xiaozhuanlan.com/activiti