# 配置RabbitMQ单一活跃消费者
单一活跃消费者（Single Active Consumer）表示队列中可以注册多个消费者，但是只允许一个消费者消费消息，只有在此消费者出现异常时，才会自动转移到另一个消费者进行消费。单一活跃消费者适用于需要保证消息消费顺序性，同时提供高可靠能力的场景。
如[图1]所示，Producer生产9条消息，由于队列设置了单一活跃消费者特性，只有Consumer 1在消费消息。
更多关于单一活跃消费者的说明，请参考[Single Active Consumer](https://www.rabbitmq.com/consumers.html#single-active-consumer)。
图1单一活跃消费者消费流程   
![](https://support.huaweicloud.com/usermanual-rabbitmq/zh-cn_image_0000001338908882.png "点击放大")
#### 约束与限制
RabbitMQ 3.8.35及以上版本支持单一活跃消费者特性。
#### 配置单一活跃消费者
您可以在客户端或RabbitMQ WebUI中声明队列时，配置单一活跃消费者。
- [在Java客户端配置单一活跃消费者]
  在声明队列时，可以配置单一活跃消费者，只需要将队列的"x-single-active-consumer"参数设置为"true"。
  以下示例演示**在Java客户端** 设置单一活跃消费者。
  ```
  Channel ch = ...;
  Map<String, Object> arguments = newHashMap<String, Object>();
  arguments.put("x-single-active-consumer", true);
  ch.queueDeclare("my-queue", false, false, false, arguments);
  ```
  
- [在RabbitMQ WebUI配置单一活跃消费者]
  1. 登录[RabbitMQ实例的Web UI](https://support.huaweicloud.com/usermanual-rabbitmq/rabbitmq-ug-180801003.html)。
  
  2. 在菜单栏，选择"Queues"。
  
  3. 创建一个单一活跃消费者队列。 
     图2创建单一活跃消费者队列   
     ![](https://support.huaweicloud.com/usermanual-rabbitmq/zh-cn_image_0000002334767694.png "点击放大")
     表1队列参数说明 
     | 参数名称           | 说明                                                                                                                                                                                                                                                                                    |
     |:---|:---|
     | Virtual Host | 单一活跃消费者队列所属的Vhost。"/"表示默认Vhost。                                                                                                                                                                                                                                                       |
     | Type         | 队列的类型。                                                                                                                                                                                                                                                                              |
     | Name          | 单一活跃消费者队列的名称，用户自定义。                                                                                                                                                                                                                                                                  |
     | Durability      | 是否开启持久化。 - Durable：该Queue在服务器重启后仍然存在。  - Transient：该Queue在服务器重启后会被删除，需要重新创建。                       |
     | Node         | 单一活跃消费者队列部署的节点。                                                                                                                                                                                                                                                                     |
     | Auto delete     | 是否开启自动删除。 - Yes：当订阅该Queue消息的最后一个消费者取消订阅后，该Queue将被自动删除。  - No：当订阅该Queue消息的最后一个消费者取消订阅后，不会删除该Queue。   |
     | Arguments   | 通过"**x-single-active-consumer=true**"，配置单一活跃消费者属性。                                                                                                                                                                                                                                     |
        
     
     
  
  4. 单击"Add queue"，完成单一活跃消费者队列的创建。
  
  5. 在"Queues"页面查看队列特性是否包含单一活跃消费者。如[图3]所示，"**SAC** "即表示队列已设置单一活跃消费者。
     
     图3查看队列特性   
     ![](https://support.huaweicloud.com/usermanual-rabbitmq/zh-cn_image_0000002334623156.png "点击放大")
     
     
   
