小红书消息中间件的运维实践与治理之路

小红书消息中间件的运维实践与治理之路

作者:张亿皓|小红书消息中间件负责人

一、消息队列业务场景与挑战

1、整体规模

下图展示了 RocketMQ 和 Kafka 的总体规模。其中峰值 TPS 的 8000w/s 一般出现在晚上下班以后的哔哩哔哩时间段运维工程师,写入量达到50GB/s,每天新增2-3PB数据,节点数1200+个。

小红书消息中间件的运维实践与治理之路

2、业务架构

网络协议的三个要素然 Rocket数据可视化工具MQ 和 Kafka网络协议是指运维是什么意思性能相似&#x监控安装流程ff0c;但在使用场景上还是有所区别的。RocketMQ 丰富的业务特性更适用于在线业务场景,而 Kafka 的高吞吐性使其更偏向离线、近线业务。当然,在实际应用中也会有交叉使用的现象ÿ比特币行情0c;有时在线业务也会使用 Kafka 解耦,有的流处理数据也消息中间件的消息传递模式会使用 RocketMQkafka消费的三种模式 存储。

业务总体架构如下图所示,业务日志和APP用户行为打点类的内容会发给 Kafka,数据库增量日志、在线业务、线上数据交换等会发给 RocketMQ。数据可视化的意义及应用领域Kafka 和 RocketMQ 中的数据会有一部分流入 flink 中构建实时数据可视化的意义及应用领域数仓、离线数仓以及一些数据产品(如报表、监控,等),哔哩哔哩;RocketMQ 中另一部分数据会用于在线业务APP异步解耦。

小红书消息中间件的运维实践与治理之路

小红书消息中间件的运维实践与治理之路

kafka面试题息队列业务架构

3、稳定性挑战

a. 背景:

小红书整体收敛消息组件较晚,公司技术架构最大的目标是提升系统稳定性;

b. 挑战࿱运维方与学者沟通的途径是a;

现存消息组件使用量极kafka是什么大&#xrocketmq面试题ff0c;但没有稳定性保障;同时面临人手紧缺、时间紧,对MQ原理了解不数据可视化设计案例深入的困境;

c. 策略:

先做监控,增强集群的可观测能力是了解其健康状况的最高效手段。

4、稳定性治理

除了监控告警,我们在稳定性治理方运维方与学者沟通的途径是面还做了以下改造工数据可视化的作用作:

a. 引擎&#x网络协议名词解释ff1a;资源隔离,新增监控打点等;

b. 平台&#x网络协议是什么意思ff1a;工单审核,权限管控,业务追溯;

c. 治理:针对集群可视化能力和集群可运维能力的建设;

小红书消息中间件的运维实践与治理之路

二、消息队列治理实践

1、集群可视化:监控metrics

下图是基于 Prometheus Grafana 构建的消息中间件体系架构。

小红书消息中间件的运维实践与治理之路

消息中间件监控体系架构图

图中包含三个监控维度:硬件维度、服务维度和业务维度,累计收集监控指标150+项。

那么如何定义这三个维度的监控指标呢?

a. 硬件维度:主网络协议的三个要素要包括网络带宽、CPU使用率、磁盘容kafka集群量/IO、TCP丢包/延迟等资源指标;

b. 服务维度:主要指运行状况的指标,如:宕机监控、JVM指标网络协议是指、读写时延、请求队列等网络协议是什么意思f1b;

c. 业务监控眼维度:即面向用户的指标,rocketmq事务消息这是客户比较关心的指标,如:消费延迟/积压、QPS、Topic吞吐量、Offset等;

由于公司内kafka工作原理部规定一个节点只能使用一个端口给Prometheus,而各项监控指标大多是分开收集,于是设计了监控安装流程运维面试题标聚合服务 MAS 将所有指标汇集在一起,同时又增加了一些元信息帮助进一步排查问题。这里 MAS 相当于metric 的一个代理层,运维人员的出路在哪里可以根监控怎么查看回放据业务的实际情况来添加。

2、告警处理

下图列举了一些发生在监控体系刚建立时候的告警信息,当时每天的告警信息约有600-700条之多,告警的问题也是各式各样&#x网络协议的说法不正确的是ff0c;根本无法处理,造成监控系统形同虚设。

小红书消息中间件的运维实践与治理之路

小红书消息中间件的运维实践与治理之路

小红书消息中间件的运维实践与治理之路

鉴于比亚迪以上情况,我们提出监控的核心原则要宁缺毋滥,不要淹没在告警海中,告警太多和没有告警没什么区别。根据这一原则制定了一系列应对策略:

  • 初期比亚迪kafka是干嘛的f1a;关闭低优告警,数据可视化的意义及应用领域以确保每一条高优告警能得到及时发现和处理;
  • 中期:随着高优告警的减少,逐步打开之前屏蔽的告警消息中间件有哪些,进运维方与学者沟通的途径是一步处理ÿ监控摄像头0c;实现告警数量逐步减少;
  • 后期:打开全部告警,确保日常告警每一条都能及时发现和处理。

根据我们的经验,到后期基本不会网络协议有“服务不可用”这类的告警,大部分告警属于预警,如网络协议的说法不正确的是果预警能及时介入处理,就可以确保在问题进一步扩大之前解网络协议是什么决。

小红书消息中间件的运维实践与治理之路

告警处理阶段性策略

3、集群可视化:met彼岸之主ric设计与优化

RocketMQ 的服务、业务指标监控,基于开源 RocketMQ-exporter 进行改造,解决 metrics网络协议名词解释 泄漏、部分指标采集偏差等问题。

这里着重介绍两个比prometheus较重要的改造:

a. lag监控优化

  • 问题一:consumer metric 泄露,exporter 运行几天指标kafka是干嘛的量就可达到 300w+,curl 一次接口花费时间 25s,log文本有600MB;

原因&#x监控视频能保存多久ff1a;如下图所示,每接入新的客户端网络协议的说法不正确的是f0c;端口值就会增加&rocketmq事务消息#xff0c;由于expor数据可视化的作用ter实现中没能将离线客户端指标值及时清理造成客户端端口持续增加导致系统告警。

小红书消息中间件的运维实践与治理之路

小红书消息中间件的运维实践与治理之路

改造:在exporter中加入metric expire模块;

结果:curl一次接口花费的时间降到2s;

  • 问题二:lag指标不准,造成线上误告警

原因:export只提供group维度的 rocketmkafka消费的三种模式q_group_difrocketmq分布式事务f,没有 broker 维度的,要额外计算;

改造:在 broker 中加入计算逻辑,先将 lag 计算好;

结果:网络协议是什么意思;可以从下图中看到&#x监控怎么安装ff0c;消息积压值从 6K 的抖动恢复成平稳值;

小红书消息中间件的运维实践与治理之路

b. 分位线/滑动窗优化

  • 问题一࿱比亚迪a;线上时常会遇到 bro网络协议名词解释ker busy 的问题,需要对发生的时间点进行监控。虽然 exporter自带 send pool 等指标,但为瞬时值,几乎没有参考意义;

改造:在 brokerocketmq原理r 中加入计算5分钟内最大值的指标ÿ比特币1b;

结果:

小红书消息中间件的运维实践与治理之路

  • 问题二&prometheus#xff1a;消息写入耗时是历史最大值,参考作用有限;

改造&比特币#xff1a;优化为5分钟内耗时,以及P99/P9数据可视化设计案例99等分位值;运维是做什么的

结果:得到准确的消息写入耗时。

小红书消息中间件的运维实践与治理之路

小红书消息中间件的运维实践与治理之路

4、集群可视化:巡检系统

巡检系统与监网络协议的组成要素控系统的区别是:监控系统是反应瞬时的问题,变化很快,需要及时发现和处理&运维为什么没人干#xf数据可视化是什么f0c;呈现形式相对固定;巡检系统则是长期工作的监督,针对静态环境和配置,变化较少,呈现网络协议形式更加自由。

随着治理工作的持续开展,如何确认一个集群达到健康状态?

a. 严格按照部署标准部署集群,包括硬件配置、运行参数、可用区等&#x监控appff0c;对所有集群进行定期巡检,产出报表反映集群状况;

b. 共制定核心标准20+项,消息中间件的消息传递模式巡检结果以表格形式呈现,如下图表格。

小红书消息中间件的运维实践与治理之路小红书消息中间件的运维实践与治理之路

c.数据可视化呈现与解读 由于指标过多无法从判断问题,因此设定了集群健康分体系,是基于集群的可用性只能通过唯一指标反映的思想,将每个指标设置一个权重,通过最终的分值来判断集群是否存在问题,如下图所示:

小红书消息中间件的运维实践与治理之路

5、集群可视化网络协议分为几层:消息对账监控

在设计告警时,总会有些没有考虑运维方与学者沟通的途径是到的告警项,这里的解决方案是消息对账系统,它可以有效监控消息监控怎么查看回放延迟、丢失和集群健康度。rocketmq集群搭建

消息对账系统的优势在于它提供端对端的监控,包罗多项监控的效果,运维是做什么的;并且它的自驱力可以替没有考虑到的告警项兜底,故障的发现RocketMQ和定位也被独立开。

小红书消息中间件的运维实践与治理之路

小红书消息中间件的运维实践与治理之路

消息对账监控系统

小红书消息中间件的运维实践与治理之路

小红书消息中间件的运维实践与治理之路小红书消息中间件的运维实践与治理之路小红书消息中间件的运维实践与治理之路

在 Kafka 社区提kafka面试题供了相应的 Kafka Monitor 组件,kafka是干嘛的我们将这个组件进行服务化改造,提供自动化添加新集群监控的能力ÿ数据可视化工具0c;减轻运维的kafka安装压力。

6、集群可运维:自动化平台

可运维能力的建设是通过自数据可视化图表监控化来实现的,其根本目的是释放人力。

下图展示的是topic迁移工具,网络协议分为几层从RocketMQ和Ka网络协议的组成要素fka两部分改造:

a. RocketMQ

  • 修改 nameserver delete 逻辑&#网络协议分析第二版课后答案xff0ckafka和rabbitmq的区别;数据可视化的意义及应用领域支持在 broker 间自动运维是什么意思迁移 topic;
  • 同时处理 consumer-group,retry/dlq topi数据可视化实例c;
  • 依赖自研管理平台;

b. Kafka

  • 基于 reassign 改造,自定义 reassign 算法,减少 partition 搬迁的影响;
  • stage 工作流化&#x网络协议分析第二版课后答案ff0c;每一步自动执行,人工确认下一步操作;
  • 集成自研管理平台。

小红书消息中间件的运维实践与治理之路

Topic迁移工具

三、未来的探索与规划

近年来,消息领域的全面云原生化逐渐走向深入,比如 RocketMQ 5.0 版本的存算分离设计和 raft 模式&网络协议是指#xff0c;再比如 Kafka3.0 引入了分层设计的方式(tiered sto彼岸之主ra网络协议的三个要素ge)和 raft 模式,以及近年来新崛起的 Pulsar 也开始采用云原生架构,在未来都可以针对具体业务需求rocketmq和rabbitmq的区别引入进行功能迭代,发挥组件的最大价值。

欢迎加入钉钉群与 RocketMQ 爱好者数据可视化工具软件讨论交流:

小红书消息中间件的运维实践与治理之路

钉钉扫码加群