当前位置:首页 > 科技  > 知识百科

Kafka 万亿级消息实践之资源组流量掉零故障排查分析

来源: 责编: 时间:2023-08-07 16:30:17 350观看
导读 作者 | vivo 互联网服务器团队-Luo Mingbo一、Kafka 集群部署架构为了让读者能与小编在后续的问题分析中有更好的共鸣,小编先与各位读者朋友对齐一下我们 Kafka 集群的部署架

作者 | vivo 互联网服务器团队-Luo MingbopaR28资讯网——每日最新资讯28at.com

一、Kafka 集群部署架构paR28资讯网——每日最新资讯28at.com

为了让读者能与小编在后续的问题分析中有更好的共鸣,小编先与各位读者朋友对齐一下我们 Kafka 集群的部署架构及服务接入 Kafka 集群的流程。paR28资讯网——每日最新资讯28at.com

为了避免超大集群我们按照业务维度将整个每天负责十万亿级消息的 Kafka 集群拆分成了多个 Kafka 集群。拆分粒度太粗会导致单一集群过大,容易由于流量突变、资源隔离、限速等原因导致集群稳定性和可用性受到影响,拆分粒度太细又会因为集群太多不易维护,集群内资源较少应对突发情况的抗风险能力较弱。paR28资讯网——每日最新资讯28at.com

由于 Kafka 数据存储和服务在同一节点上导致集群扩缩容周期较长,遇到突发流量时不能快速实现集群扩容扛住业务压力,因此我们按照业务维度和数据的重要程度及是否影响商业化等维度进行 Kafka 集群的拆分,同时在 Kafka 集群内添加一层逻辑概念“资源组”,资源组内的 Node 节点共享,资源组与资源组之间的节点资源相互隔离,确保故障发生时不会带来雪崩效应。paR28资讯网——每日最新资讯28at.com

paR28资讯网——每日最新资讯28at.com

二、业务接入 Kafka 集群流程.在 Kafka 平台注册业务项目。若项目的业务数据较为重要或直接影响商业化,用户需申请创建项目独立的资源组,若项目数据量较小且对数据的完整性要求不那么高可以直接使用集群提供的公共资源组无需申请资源组。项目与逻辑概念资源组绑定。创建 topic,创建 topic 时使用 Kafka 平台提供的接口进行创建,严格遵守 topic 的分区分布只能在项目绑定的资源组管理的 broker 节点上。授权对 topic 的读写操作。paR28资讯网——每日最新资讯28at.com

paR28资讯网——每日最新资讯28at.com

通过上述的架构部署介绍及接入流程接入介绍相信大家有很多相关知识点都与小编对齐了。paR28资讯网——每日最新资讯28at.com

从部署架构图我们可以清晰的了解到我们这套集群部署在服务端最小的资源隔离单元为“资源组”即在同一个资源组下的多个broker节点之间会有影响,不同的资源组下的broker节点做了逻辑隔离。paR28资讯网——每日最新资讯28at.com

上述的相关知识点对齐后我们将开启我们的故障排查之旅。paR28资讯网——每日最新资讯28at.com

三、故障情况介绍paR28资讯网——每日最新资讯28at.com

故障发生时,故障节点所在资源组的多个 topic 流量几乎全部掉零,生产环境我们对 Kafka 集群的磁盘指标READ、WRITE、IO.UTIL、AVG.WAIT、READ.REQ、WRITE.REQ做了告警监控,由于故障发生在凌晨,整个故障的处理过程持续实践较长,导致了业务方长时间的topic流量整体掉零对业务造成不小的影响。paR28资讯网——每日最新资讯28at.com

四、监控指标介绍4.1 流量监控情况paR28资讯网——每日最新资讯28at.com

1、故障节点在故障发生时网络空闲率出现短暂的掉零情况,且与生产流量监控指标一致。一旦生产流量上升故障节点的网络空闲率就同步掉零。paR28资讯网——每日最新资讯28at.com

paR28资讯网——每日最新资讯28at.com

2、Grafana 监控指标中topic生产流量几乎全部掉零。paR28资讯网——每日最新资讯28at.com

paR28资讯网——每日最新资讯28at.com

3、Kafka 平台项目监控中也体现了当前项目的多个topic生产流量指标掉零。paR28资讯网——每日最新资讯28at.com

paR28资讯网——每日最新资讯28at.com

4.2 磁盘指标监控paR28资讯网——每日最新资讯28at.com

SDF 盘的IO.UTIL指标达到100%, 80%左右我们认为是服务可稳定运行的指标阈值。paR28资讯网——每日最新资讯28at.com

paR28资讯网——每日最新资讯28at.com

SDF 盘的AVG.WAIT指标达到分钟级等待,一般400ms左右的延迟我们认为是服务可稳定运行的阈值。paR28资讯网——每日最新资讯28at.com

paR28资讯网——每日最新资讯28at.com

4.3 Kafka 服务端日志及系统日志情况paR28资讯网——每日最新资讯28at.com

Kafka集群controller节点的日志中出现Input/Output error的错误日志。paR28资讯网——每日最新资讯28at.com

paR28资讯网——每日最新资讯28at.com

Linux 系统日志中出现Buffer I/O error 的错误日志paR28资讯网——每日最新资讯28at.com

paR28资讯网——每日最新资讯28at.com

五、故障猜想及分析paR28资讯网——每日最新资讯28at.com

从上述的指标监控中很明显的可以得出结论,故障原因是由于 Kafka broker节点的sdf盘磁盘故障导致的,只需在对应的 Kafka broker 节点上将sdf盘踢掉重启即可恢复。那这样就结束了吗 ?of course not。paR28资讯网——每日最新资讯28at.com

对 Kafka 有一定认识的小伙伴应该都知道,创建topic时topic的分区是均匀分布到集群内的不同broker节点上的,即使内部某一台broker节点故障,其他分区应该能正常进行生产消费,如果其他分区能进行正常的生产和消费就不应该出现整个topic的流量几乎全掉零的情况。paR28资讯网——每日最新资讯28at.com

paR28资讯网——每日最新资讯28at.com

如上图所示,topicA 的三个分区分别分布在 brokerA、brokerB、brokerC三个物理主机节点上。paR28资讯网——每日最新资讯28at.com

生产者producer向TopicA发送消息时会分别与brokerA、brokerB、brokerC三个物理主机节点建立长链接进行消息的发送,此时若 brokerB 节点发生故障无法向外部提供服务时按照我们的猜想应该不会影响到brokerA和brokerC两个节点继续向producer提供接收消息的服务。paR28资讯网——每日最新资讯28at.com

但从监控指标的数据展示来分析当brokerB节点出现故障后topic整体流量掉零与我们的猜想大相径庭。paR28资讯网——每日最新资讯28at.com

既然是出现类似了服务雪崩的效应导致了部分topic的整体流量几乎掉零那么我们在猜想问题发生的原因时就可以往资源隔离的方向去思考,看看在整个过程中还有哪些地方涉及到资源隔离的环节进行猜想。paR28资讯网——每日最新资讯28at.com

Kafka 服务端我们按照资源组的方式做了 Kafka broker的逻辑隔离且从Grafana监控上可以看出有一些topic的流量并没有严重掉零的情况,那么我们暂时将分析问题的目光转移到 Kafka client端,去分析 Kafka producer的发送消息的过程是否存在有资源隔离地方没有做隔离导致了整体的雪崩效应。paR28资讯网——每日最新资讯28at.com

六、Kafka 默认分区器的分区规则paR28资讯网——每日最新资讯28at.com

paR28资讯网——每日最新资讯28at.com

对 Kafka 生产流程流程有一定了解的同学肯定知道,Kafka 作为了大数据生态中海量数据的消息中间件,为了解决海量数据的并发问题 Kafka 在设计之初就采用了客户端缓冲消息,当消息达到一定批量时再进行批量消息的发送。paR28资讯网——每日最新资讯28at.com

通过一次网络IO将批量的数据发送到 Kafka 服务端。关于Kafka producer客户端缓冲区的设计小编后续会单独一个篇幅进行深入的探索,鉴于篇幅问题不再此处进行详细分析。paR28资讯网——每日最新资讯28at.com

基于此处的分析我们对一批消息发送到一个故障节点时的容错方案可以有以下猜想:paR28资讯网——每日最新资讯28at.com

快速失败,记录故障节点信息。下次进行消息路由时只路由到健康的节点上。快速释放消息缓冲内存。快速失败,记录故障节点信息,下次进行消息路由时当消息路由到故障节点上时直接报错,快速释放缓冲区内存。等待超时,当次消息等待超时后,下次进行消息路由时依然会出现路由到故障节点上的情况,且每次等待超时时间后才释放占用的资源。paR28资讯网——每日最新资讯28at.com

上述猜想中,如果是第一种情况,那么每次消息路由只路由到健康的节点上不会出现雪崩效应耗尽客户端缓冲区资源的情况;paR28资讯网——每日最新资讯28at.com

第二种情况,当消息路由到故障节点上时,直接拒绝分配缓冲区资源也不会造成雪崩效应;paR28资讯网——每日最新资讯28at.com

第三种情况,每次需要在一个或多个超时时间后才能将故障节点所占用的客户端缓冲区资源释放,在海量消息发送的场景下一个超时时间周期内故障节点上的消息足以将客户端缓冲区资源耗尽,导致其他可用分区无法分配客户端缓冲区资源导致出现雪崩效应。paR28资讯网——每日最新资讯28at.com

带着上述的猜想打开kafka client producer的源代码分析下defaultPartitioner的分区规则得到如下的分配逻辑:paR28资讯网——每日最新资讯28at.com

发送消息时是否指定了分区,若指定了分区那消息就直接发往该分区无需重新路由分区。paR28资讯网——每日最新资讯28at.com

消息是否指定了key,若消息指定了key,使用key的hash值与topic的分区数进行模运算,得出消息路由的分区号(对应第三种猜想)。paR28资讯网——每日最新资讯28at.com

消息未指定分区也未指定key,使用自增变量与topic的可用分区进行模运算,得出消息路由的分区号(对应第一种猜想)。paR28资讯网——每日最新资讯28at.com

paR28资讯网——每日最新资讯28at.com

七、总结从源码中分析出若发送消息的时候指定了key,并使用的是 Kafka producer默认的分区分配器请款下会出现 Kafka producer 客户端缓冲区资源被耗尽而出现topic所有分区雪崩效应。跟业务系统同学了解了他们的发送逻辑确实在消息发送指定了key并使用的是 Kafka producer的默认分区分配器。问题得到论证。八、建议若非必要发送消息时不要指定key,否则可能会出现topic所有分区雪崩效应。若确实需要发送消息指定key,建议不要使用Kafka producer默认的分区分配器,因为指定key的情况下使用 Kafka producer的默认分区分配器会出现雪崩效应。paR28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-119-2332-0.htmlKafka 万亿级消息实践之资源组流量掉零故障排查分析

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 云计算开发:Python3数学函数min()方法详解

下一篇: 用Elastic Block Store(EBS)改善性能和数据可用性 译文

标签:
  • 热门焦点
  • Find N3入网:最高支持16+1TB

    OPPO将于近期登场的Find N3折叠屏目前已经正式入网,型号为PHN110。本次Find N3在外观方面相比前两代有很大的变化,不再是小号的横向折叠屏,而是跟别的厂商一样采用了较为常见的
  • vivo TWS Air开箱体验:真轻 臻好听

    在vivo S15系列新机的发布会上,vivo的最新款真无线蓝牙耳机vivo TWS Air也一同发布,本次就这款耳机新品给大家带来一个简单的分享。外包装盒上,vivo TWS Air保持了vivo自家产
  • 不容错过的MSBuild技巧,必备用法详解和实践指南

    一、MSBuild简介MSBuild是一种基于XML的构建引擎,用于在.NET Framework和.NET Core应用程序中自动化构建过程。它是Visual Studio的构建引擎,可在命令行或其他构建工具中使用
  • 量化指标是与非:挽救被量化指标扼杀的技术团队

    作者 | 刘新翠整理 | 徐杰承本文整理自快狗打车技术总监刘新翠在WOT2023大会上的主题分享,更多精彩内容及现场PPT,请关注51CTO技术栈公众号,发消息【WOT2023PPT】即可直接领取
  • 梁柱接棒两年,腾讯音乐闯出新路子

    文丨田静 出品丨牛刀财经(niudaocaijing)7月5日,企鹅FM发布官方公告称由于业务调整,将于9月6日正式停止运营,这意味着腾讯音乐长音频业务走向消亡。腾讯在长音频领域还在摸索。为
  • 自律,给不了Keep自由!

    来源 | 互联网品牌官作者 | 李大为编排 | 又耳 审核 | 谷晓辉自律能不能给用户自由暂时不好说,但大概率不能给Keep自由。近日,全球最大的在线健身平台Keep正式登陆港交所,努力
  • 造车两年股价跌六成,小米的估值逻辑变了吗?

    如果从小米官宣造车后的首个交易日起持有小米集团的股票,那么截至2023年上半年最后一个交易日,投资者将浮亏59.16%,同区间的恒生科技指数跌幅为52.78%
  • iQOO Neo8 Pro抢先上架:首发天玑9200+ 安卓性能之王

    经过了一段时间的密集爆料,昨日iQOO官方如期对外宣布:将于5月23日推出全新的iQOO Neo8系列新品,官方称这是一款拥有旗舰级性能调校的作品。随着发布时
  • OPPO K11样张首曝:千元机影像“卷”得真不错!

    一直以来,OPPO K系列机型都保持着较为均衡的产品体验,历来都是2K价位的明星机型,去年推出的OPPO K10和OPPO K10 Pro两款机型凭借各自的出色配置,堪称有
Top