一、免运维
·支持一键创建集群,开箱即用。
·按 TPS 规格快速扩缩容,提供极致弹性。
·5.x TPS 支持弹性区间,应对突发流量。
·5.x 存储 Serverless 化,支持按需使用,按量付费。
二、特性丰富
·支持多种消息类型:事务/定时/延时/顺序消息。
·支持多种消费模式:Tag 过滤、SQL 92 过滤、集群消费、广播消费。
三、可观测性
·提供全面的监控指标,快速发现问题。
·支持可视化消息轨迹,串联上下游业务,更好的排查和定位问题。
四、高可用
·支持跨可用区部署,抵御机房级故障。
·容器化秒级自动重启,单节点宕机时容量和数据不受损。
·支持集群限流保护,提升集群健康度。
·支持跨集群消息复制,满足灾备需求。
五、安全管控
·集成腾讯云的 CAM 系统,支持操作级/资源级的权限管理能力。
·可视化的 ACL 管理页面,支持收发消息的权限管理。
·公网访问支持白名单控制。
六、平滑迁移
·开源兼容,0业务代码修改。
·提供元数据迁移工具,降低迁移成本。
·提供集群平滑迁移方案,低侵入可回滚,减少业务侵入。
七、技术架构
消息队列 RocketMQ 版的系统部署架构图如下:
5.x 集群4.x 集群
消息队列 TDMQ RocketMQ 版 5.x 系列引入了新的 gRPC 协议和 Proxy 组件,实现了存算分离的架构,对 RocketMQ 的运维和使用都会带来巨大的变化。
其中涉及的各个概念如下:
·Producer 集群: 客户侧应用,负责生产并发送消息。
·Consumer 集群:客户侧应用,负责订阅和消费处理消息。
·NameServer 集群: 服务端应用,负责路由寻址和 Broker 心跳注册。为保证高可用,默认跨可用区部署。
·心跳注册:NameServer 相当于注册中心的角色,各个角色的机器都要定时向 NameServer 上报自己的状态,如果超时未上报,NameServer 会认为某个机器出现故障不可用,从而将这个机器从可用列表中删除。
·路由寻址:每个 NameServer 中都保存着 Broker 集群的整个路由信息和用于客户端查询的队列信息,生产者和消费者通过 NameServer 去获取整个 Broker 集群的路由信息,从而进行消息的投递和消费。
·Proxy 集群:全新的弹性无状态代理服务,为保证高可用,默认跨可用区部署。将 4.x 中的 Broker 职责进行拆分,对于客户端协议适配、权限管理、消费管理等计算逻辑进行抽离。
·Broker 集群:与 4.x 产品系列相比,在 5.x 系列中,Broker 更专注于存储能力的持续优化。为保证高可用,默认跨可用区部署。
其中涉及的各个概念如下:
·Producer 集群: 客户侧应用,负责生产并发送消息。
·Consumer 集群:客户侧应用,负责订阅和消费处理消息。
·NameServer 集群: 服务端应用,负责路由寻址和 Broker 心跳注册。
·心跳注册:NameServer 相当于注册中心的角色,各个角色的机器都要定时向 NameServer 上报自己的状态,如果超时未上报,NameServer 会认为某个机器出现故障不可用,从而将这个机器从可用列表中删除。
·路由寻址:每个 NameServer 中都保存着 Broker 集群的整个路由信息和用于客户端查询的队列信息,生产者和消费者通过 NameServer 去获取整个 Broker 集群的路由信息,从而进行消息的投递和消费。
·Broker 集群:服务端应用,负责接收,存储,投递消息,支持主从多副本模式,从节点可选部署,实际现网公有云上数据高可靠直接依赖云盘三副本。
·管控集群: 服务端应用,可视化的管控控制台,负责运维整个集群,例如元数据的管理等。