- 最新动态
- 功能总览
- 服务公告
- 产品介绍
- 计费说明
- 快速入门
- 用户指南
- 最佳实践
- 开发指南
- API参考
- SDK参考
-
常见问题
-
实例问题
- RabbitMQ使用的版本是多少?
- RabbitMQ实例SSL连接的协议版本号是多少?
- 创建实例时为什么无法查看子网和安全组等信息?
- RabbitMQ集群实例如何均衡分发请求到每个虚拟机?
- RabbitMQ实例集群内部的队列是否有冗余备份?
- RabbitMQ实例是否支持持久化,如何定时备份数据?
- RabbitMQ实例开启SSL后,证书怎么获取?
- RabbitMQ实例的SSL开关是否支持修改?
- RabbitMQ实例是否支持扩容?
- RabbitMQ支持双向认证吗?
- RabbitMQ支持升级CPU和内存吗?
- 如何关闭RabbitMQ的WebUI?
- 实例是否支持修改可用区?
- 如何获取region id?
- 为什么不能选择2个可用区?
- 单机RabbitMQ实例如何变更为集群实例?
- RabbitMQ实例创建后,能修改VPC和子网吗?
- RabbitMQ扩容/缩容会影响业务吗?
- 连接问题
- 消息问题
- 监控告警问题
-
实例问题
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
配置RabbitMQ单一活跃消费者
单一活跃消费者(Single Active Consumer)表示队列中可以注册多个消费者,但是只允许一个消费者消费消息,只有在此消费者出现异常时,才会自动转移到另一个消费者进行消费。单一活跃消费者适用于需要保证消息消费顺序性,同时提供高可靠能力的场景。
如图1所示,Producer生产9条消息,由于队列设置了单一活跃消费者特性,只有Consumer 1在消费消息。
更多关于单一活跃消费者的说明,请参考Single Active Consumer。
约束与限制
RabbitMQ 3.8.35及以上版本支持单一活跃消费者特性。
配置单一活跃消费者
您可以在客户端或RabbitMQ WebUI中声明队列时,配置单一活跃消费者。
在声明队列时,可以配置单一活跃消费者,只需要将队列的“x-single-active-consumer”参数设置为“true”。
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实例的Web UI。
- 在菜单栏,选择“Queues”。
- 创建一个单一活跃消费者队列。
图2 创建单一活跃消费者队列表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”,配置单一活跃消费者属性。
- 单击“Add queue”,完成单一活跃消费者队列的创建。
- 在“Queues”页面查看队列特性是否包含单一活跃消费者。如图3所示,“SAC”即表示队列已设置单一活跃消费者。
在声明队列时,可以配置单一活跃消费者,只需要将队列的“x-single-active-consumer”参数设置为“true”。
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实例的Web UI。
- 在菜单栏,选择“Queues”。
- 创建一个单一活跃消费者队列。
图2 创建单一活跃消费者队列表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”,配置单一活跃消费者属性。
- 单击“Add queue”,完成单一活跃消费者队列的创建。
- 在“Queues”页面查看队列特性是否包含单一活跃消费者。如图3所示,“SAC”即表示队列已设置单一活跃消费者。