RabbitMQ的主题模式


主题模式

rabbitmq

主题模式下的生产者将消息发送到交换机,交换机根据消息的路由键和通配符模式将消息发送到符合匹配规则的队列。消费者根据路由键绑定到队列上,只接收特定路由键的消息。路由键的通配符包括:

  • *:星号匹配任意一个单词,例如:log.*能够匹配log.info、log.error。
  • #:井号匹配一个或多个单词,例如:log.#能够匹配log.error、log.level.error。

主题模式适用于需要根据主题进行模糊匹配的场景,如日志系统中的不同日志级别处理。

使用示例

应用测试

1、生产者P1与P2分别发送消息至交换机test.topic中,消息队列由应用程序自动生成。

1.1、生产者P1发送路由键为nginx.log.warning的消息。

rabbitmq

1.2、生产者P2发送路由键为nginx.log.error的消息。

rabbitmq

2、消费者C1与C2在队列消费端读取消息,主题模式下每一条消息都会被订阅特定路由键的消费者读取。

2.1、消费者C1订阅了主题nginx.#的消息,所以读取到第一条消息,。

rabbitmq

2.2、消费者C1订阅了主题nginx.#的消息,C2订阅了主题*.*.error的消息,所以都能够读取到第二条消息。

rabbitmq

查看后台

1、查看连接Connections,两个生产者与两个消费者共计四个连接,所有连接的状态(State)均为运行中(running)。

rabbitmq

2、查看信道Channels,每一个连接可以有多个信道,示例中的每个连接只有一个信道,状态(State)均为空闲(Idle)。

rabbitmq

3、查看交换机Exchanges,Exchages表格中显示了交换机test.topic,类型为主题(topic)。

rabbitmq

4、查看队列Queues,Queues表格中显示了应用程序创建的两个队列,队列的当前状态(State)为空闲(Idle)。

rabbitmq

发表评论

评论数量:0