概述
集群治理是 AutoMQ Copilot for RocketMQ 面向 RocketMQ 集群运维场景提供的集群稳定性指标数字化度量工具。本文介绍 AutoMQ Copilot for RocketMQ 集群治理的功能定义、使用场景价值以及主要功能流程。
本文中提及的 RocketMQ Copilot 术语是 AutoMQ Copilot for RocketMQ 的简称,均特指安托盟丘(杭州)科技有限公司面向 Apache RocketMQ 设计实现的消息队列智能辅助运维系统。
应用场景
场景一:运维团队无法从客户端应用视角判断集群是否正常提供服务
用户自建 Apache RocketMQ 集群运维过程往往会遇到如下困扰。日常运维除了针对特定参数、指标的白盒检查,缺乏从客户端应用视角以黑盒测试方式实时判断当前集群是否正常提供服务。
- 服务端检查无法覆盖全链路:常见的针对服务端特定指标、参数的巡检检查只能覆盖部分模块,无法覆盖全部功能链路。
- 缺少客户端视角真实数据:从服务端视角检查各项参数符合预期并不能代表客户端业务视角收发消息调用是否正常,缺少真实的调用数据监控。
场景二:缺乏专业经验,无法对集群稳定性水平进行数字化、可视化度量
线上各个 RocketMQ 集群如何度量服务稳定性水平,运维保障是否达标,以什么指标度量稳定性,缺乏统一标准和专业经验。
- 缺少稳定性度量经验:运维 RocketMQ 缺乏专业经验,判断应该看哪些指标作为最核心的稳定性指标。
- 缺少数字化、可视化工具:即使明确了稳定性指标,如何实时采集、度量和展示,缺少数字化、可视化工具。
RocketMQ Copilot 内置集群 SLI 度量以及 SLO 管理功能,用户一键开启 SLI 探测即可快速获取专业经验沉淀的 SLI 模板以及集群实时的数据看板,并基于运行情况设置合理的 SLO 目标。
SLI:对服务性能或可靠性的定量度量。在系统中 SLI 确定了衡量集群服务稳定性的关键指标。
SLO:在指定时间周期内,针对 SLI 指标设置一个达成的时间占比或者数量占比目标。即满足目标的比例是几个 9。
场景三:容量规划缺少经验,无法提前预测集群水位,提前扩缩容
运维 RocketMQ 集群需要时刻关注集群容量,确保水位处于安全范围,但实际中会面临以下难点:
- 容量基线评估困难:针对不同规格的机器,每个 Broker 最多支撑多少消息收发,这一容量基线难以评估。
- 缺乏容量预测,临时扩容压力大:往往业务只能配置比较保守的水位告警,无法提前预测未来一段时间的容量趋势,做到从容规划。
功能定义
集群治理是RocketMQ Copilot 面向集群运维过程中对稳定性 SLI、SLO 管理以及集群容量规划等痛点问题提供的功能模块。
用户开启 RocketMQ Copilot 预置的 SLI 探测任务,产生相关的 SLI Metrics 数据,方便用户分析当前集群的稳定性指标,并基于 SLI 指标进行 SLO 管理。
用户可以配置容量规划任务,实现对特定集群的容量管理和预测告警,实现提前感知用量增长趋势,提前规划资源,从容应对扩缩容操作。
关于集群治理的核心功能流程参考下图:
其中,主要功能模块参考如下文档:
- 开启集群 SLI 探测:集群治理查看 SLI 数据需要先开启集群 SLI 探测,开启后 RocketMQ Copilot 会按固定周期以 RocketMQ 客户端视角模拟消息收发探测,产生探测数据。管理集群 SLI▸
- 查看 SLI 数据大盘:RocketMQ Copilot 基于实时探测的收发测试数据按照预置的 SLI 模板展示最近一段时间的 SLI 数据,方便用户分析各指标近期状态。管理集群 SLI▸
- 创建 SLO 目标:针对开启 SLI 探测的集群,同时可以设置 SLO 目标,RocketMQ Copilot 支持管理 SLO 目标的达成情况,对于 SLO 不满足的集群实时进行报警通知。管理集群 SLO▸
- 创建容量规划:面向集群评估性能基线,设置预警水位后,系统可以自动预测未来的业务用量,实现提前预警提前规划。容量规划▸