822
人物
集群消费和广播消费__特色功能_消息队列 MQ-阿里云
本文档主要介绍 MQ 集群消费和广播消费的基本概念,适用场景以及注意事项。
基本概念
MQ 是基于发布订阅模型的消息系统。在 MQ 消息系统中消息的订阅方订阅关注的 Topic,以获取并消费消息。由于订阅方应用一般是分布式系统,以集群方式部署有多台机器。因此 MQ 约定以下概念。
集群:MQ 约定使用相同 Consumer ID 的订阅者属于同一个集群,同一个集群下的订阅者消费逻辑必须完全一致(包括 Tag 的使用),这些订阅者在逻辑上可以认为是一个消费节点。
集群消费:当使用集群消费模式时,MQ 认为任意一条消息只需要被集群内的任意一个消费者处理即可。
广播消费:当使用广播消费模式时,MQ 会将每条消息推送给集群内所有注册过的客户端,保证消息至少被每台机器消费一次。
场景对比
集群消费模式:
适用场景&注意事项
- 消费端集群化部署,每条消息只需要被处理一次。
- 由于消费进度在服务端维护,可靠性更高。
- 集群消费模式下,每一条消息都只会被分发到一台机器上处理,如果需要被集群下的每一台机器都处理,请使用广播模式。
- 集群消费模式下,不保证消息的每一次失败重投等逻辑都能路由到同一台机器上,因此处理消息时不应该做任何确定性假设。
广播消费模式:
适用场景&注意事项
- 每条消息都需要被相同逻辑的多台机器处理。
- 消费进度在客户端维护,出现重复的概率稍大于集群模式。
- 广播模式下,MQ 保证每条消息至少被每台客户端消费一次,但是并不会对消费失败的消息进行失败重投,因此业务方需要关注消费失败的情况。
- 广播模式下,第一次启动时默认从最新消息消费,客户端的消费进度是被持久化在客户端本地的隐藏文件中,因此不建议删除该隐藏文件,否则会丢失部分消息。
- 广播模式下,每条消息都会被大量的客户端重复处理,因此推荐尽可能使用集群模式。
- 目前仅 Java 客户端支持广播模式。
- 广播模式下服务端不维护消费进度,所以服务端不提供堆积查询和报警功能。
使用集群模式模拟广播:
适用场景&注意事项
- 每条消息都需要被多台机器处理,每台机器的逻辑可以相同也可以不一样。
- 消费进度在服务端维护,可靠性高于广播模式。
最后更新:2016-11-23 16:04:16
上一篇:
消息过滤__特色功能_消息队列 MQ-阿里云
下一篇:
定时消息和延时消息__特色功能_消息队列 MQ-阿里云
创建实例概览__创建实例_实例_用户指南_云服务器 ECS-阿里云
数据集管理__监控结果管理_用户指南_业务实时监控服务 ARMS-阿里云
不予支持 Docker Compose 的标签__服务编排文档_用户指南_容器服务-阿里云
ECS Windows系统抓包工具Wireshark的安装使用__网络连接问题_网络问题_Windows操作运维问题_云服务器 ECS-阿里云
批量修改解析记录__批量管理接口_API文档_云解析-阿里云
其他__常见问题_云解析-阿里云
命令行工具的简单 Shell 脚本__脚本使用示例_用户指南_命令行工具 CLI-阿里云
新增类目__媒体类目接口_API使用手册_视频点播-阿里云
认证考试的报名方式__弹性计算认证(ACP级)_如何获得专业技术认证?_专业技术认证-阿里云
创建共享带宽包__NAT网关相关接口_API参考_专有网络 VPC-阿里云
相关内容
常见错误说明__附录_大数据计算服务-阿里云
发送短信接口__API使用手册_短信服务-阿里云
接口文档__Android_安全组件教程_移动安全-阿里云
运营商错误码(联通)__常见问题_短信服务-阿里云
设置短信模板__使用手册_短信服务-阿里云
OSS 权限问题及排查__常见错误及排除_最佳实践_对象存储 OSS-阿里云
消息通知__操作指南_批量计算-阿里云
设备端快速接入(MQTT)__快速开始_阿里云物联网套件-阿里云
查询API调用流量数据__API管理相关接口_API_API 网关-阿里云
使用STS访问__JavaScript-SDK_SDK 参考_对象存储 OSS-阿里云