单一活跃消费者 本章节主要介绍分布式消息服务RabbitMQ的单一活跃消费者特性。 使用场景 单一活跃消费者(Single Active Consumer)表示队列中可以注册多个消费者,但是只允许一个消费者消费消息,只有在此消费者出现异常时,才会自动转移到另一个消费者进行消费。单一活跃消费者适用于需要保证消息消费顺序性,同时提供高可靠能力的场景。 说明 分布式消息服务RabbitMQ3.8.35版本才提供单一活跃消费者特性。 图1 单一活跃消费者消费流程 如图1所示,Producer生产9条消息,由于队列设置了单一活跃消费者特性,只有Consumer 1在消费消息。 更多关于单一活跃消费者的说明,请参考Single Active Consumer。 配置方法 在声明队列时,可以配置单一活跃消费者,只需要将队列的“xsingleactiveconsumer”参数设置为“true”。 以下示例演示在Java客户端设置单一活跃消费者。 Channel ch ...; Map arguments newHashMap (); arguments.put("xsingleactiveconsumer", true); ch.queueDeclare("myqueue", false, false, false, arguments); 以下示例演示在 RabbitMQ WebUI页面设置单一活跃消费者。 图2 设置单一活跃消费者 设置完成后,在“Queues”页面查看队列特性是否包含单一活跃消费者。如图3所示,“SAC”即单一活跃消费者。 图3 查看队列特性