一、RocketMQ简介
ocketMQ是阿里巴巴研发的一款分布式消息中间件,后开源给Apache基金会,成为apache的顶级开源项目。它具有高性能、高可靠、高实时和分布式的特点。RocketMQ主要应用于解决应用耦合,消息分发,流量削锋等问题。
RocketMQ的基本概念包括主题(Topic)、消息(Message)、消息属性(Message Attribute)等。主题是RocketMQ中消息传输和存储的顶层容器,用于标识同一类业务逻辑的消息,通过TopicName来做唯一标识和区分。生产者向主题发送消息,这些消息是最终传送给消费者的数据消息的载体。同时,生产者可以为消息定义一些属性,如Message Key和Tag,其中Message Key是消息的业务标识,由消息生产者设置,唯一标识某个业务逻辑;Message ID是消息的全局唯一标识,由RocketMQ系统自动生成,唯一标识某条消息。
在实际应用中,RocketMQ采用发布订阅模式,基本的参与组件主要包括:消息发送者、消息服务器(消息存储)、消息消费、路由发现。例如,一个简单的用户下单后根据支付金额增加用户积分的场景,传统模式下需要订单模块调用积分模块接口,这样的话订单模块与积分模块就形成了系统耦合,一旦积分模块有修改或出现异常就会影响订单模块功能。引入RocketMQ方案后, 用户下单成功后,将消息写入消息队列就可以了。
RocketMQ作为一款消息中间件,经历了淘宝双十一的洗礼,既可为分布式应用系统提供异步解耦和削峰填谷的能力,同时也具备互联网应用所需的海量消息堆积、高吞吐、可靠重试等特性。
二、RocketMQ Copilot介绍
RocketMQ Copilot 是一款面向 Apache RocketMQ 的智能辅助运维系统,其核心理念是将RocketMQ 集群的生产实战经验以产品化形式呈现,在辅助广大企业开发者运维管理自建集群的同时,也能方便掌握 RocketMQ 集群运维的最佳实践。
目前 RocketMQ Copilot 主要包含系统巡检、专家诊断和集群治理三块功能。通过RocketMQ 曾经出过的故障不再重复去踩坑,能在系统出现故障之前就能提前发现,提前治理,防患于未然。出现故障后,也能快速精准定位问题。即使对源码不熟悉,也能有足够信心敢于在生产系统上部署。
三、RocketMQ Copilot核心能力
RocketMQ Copilot 本质上一款专业运维系统工具,辅助用户对已有的自建集群进行体系化的运维管理,其整体架构如下图所示:
1. 系统巡检
系统巡检主要用来解决一个问题:集群到底正不正常?这个问题其实很难回答,因为集群的状态是动态、流量的变化,集群的健康状态也会发生变化。RocketMQ Copilot 通过预设的巡检规则定期检测系统潜在风险,并生成风险报告,帮助用户提前感知、处理线上集群风险的产品功能。
系统巡检涵盖:
-
内核参数巡检,确保 RocketMQ 运行的内核环境是处于最佳配置的状态。
-
集群参数巡检,RocketMQ 有数百个配置项,要充分掌握每一个配置项其实相当有难度,Copilot 会根据集群的情况,动态确保每一个参数项在当前负载下是属于最佳配置。
-
消费者组巡检,检查每一个客户端配置是否正确,比如最常见的订阅关系是否一致,让大家能发现你的客户,是否正在以推荐的实践使用 RocketMQ。
-
Topic 级巡检,比如 Topic 的路由是否是一致的,是否出现了热点分区等。
2. 集群治理(SLI/SLO)
通过 RocketMQ Copilot 内置的一系列端到端 SLI,结合自定义 SLO 的能力,可以快速以数字化的方式衡量集群的服务质量,同时能配置成精准的报警项,极大程度上消除无效报警和报警噪音。
3. 专家诊断
RocketMQ Copilot 提供的线上问题一键诊断工具,内置多种专家诊断模板。用户输入简单的问题信息后即可快速得出问题诊断报告,给出疑似问题点。
困扰的一个大的问题是消息未消费,RocketMQ 保证至少投递一次的语义需要确保消息绝对不能丢失,「消息未消费」问题的排查路径,如下图所示,数十个排查分支,可见排查这类问题的门槛有多高。
四、产品优势
1. 专家经验输出
RocketMQ Copilot 基于产品团队十多年 RocketMQ 集群运维经验沉淀而产生,使用 RocketMQ Copilot 过程同时可以快速掌握 RocketMQ 集群运维的各项经验技巧和最佳实践。
2. 轻量化输出
RocketMQ Copilot 采用单体应用架构,自身无任何软件依赖,运行不依赖联网。无论是线下 IDC 环境、云厂商虚拟主机环境都可以实现一键部署和运行。
3. 集群无侵入
RocketMQ Copilot 自身定位是辅助运维工具,采用无侵入、离线化、本地化系统设计理念。使用 RocketMQ Copilot 对用户现有 RocketMQ 集群无任何侵入。
4. 零门槛免费试用
RocketMQ Copilot 为所有开发者提供零门槛免费试用版订阅,新用户无需任何费用即可体验和使用,如需延长试用也可免费申请。
5. 扎根社区持续更新
RocketMQ Copilot 持续和社区紧密结合,吸收来自开发者社区的需求和贡献,保持高速更新和迭代。
五、结语
RocketMQ Copilot 目前已经完成了第一个版本的开发,更多规划的能力即将发布。同时,该产品对于个人开发者永久免费,大家可以前往 AutoMQ 官网(https://play.automq.com)试用这款匠心之作,感受 RocketMQ Copilot 给你带来的不一样的运维体验。