Redian新闻
>
kafka中常见问题你遇到哪些

kafka中常见问题你遇到哪些

公众号新闻

kafka核心概念

Broker: 一个kafka服务端节点

cluseter: 集群,由多个Broker组合的集合

message:消息,也叫Record,kafka中信息传递的载体,对于kafka

Producer:生产者,向kafka发送消息的应用

Consumer:消费者,从kafka接收消息的应用

Consumer Group:消费者组,一组具有相同Group ID的Consumer,当一个topic被同一个group的多个consumer消费的时候,每条消息都只会投递到一个Consumer,实现消费的负载均衡,通过group,可以确保一个topic消息被并行消费,调高吞吐量

Topic:消费的主题,用于分类消息,在每个Broker上都可以创建多个topic

Replica:副本,每一个分区都有多个副本,当主分区故障的时候会选择一个备分区,成为leader,kafka中默认副本最大数量是10,副本的数量不能大于broker的数量

Partition:分区,一个有序不变的消息列队,用于存储消息,一个topic由一个或者多个分区组成,每个分区中的消息存储于一个或者多个broker上,在一个分区中消息的顺序就是producer发送消息的顺序。

offset: 分区中每条消息位置的信息,是一个单调递增且不变的值。

消费位点:分区被当前consumer消费了消息的最大位点

堆积量:当前分区下消息堆积的总量,即最大位点减去消费位点的值。堆积是一个关键指标,如果发现堆积量较大,则comsumer可能出现了阻塞,或者消费速度更不上生产的速度,此时需要分析consumer的运行状况,尽力提升消费速度。可以清除所有的堆积消息,从最大位点开始消费,或者按照时间点进行点重置。

rebalance:重平衡,消费组内某个消费者实例挂掉后,其他消费者实例自动重新分配订阅的主题分区的过程,它是kafka消费者端实现高可用的重要手段。

zookeeper: kafka集群依赖zookeeper来保存集群的元信息,以保证系统的可用性。

kafka版本

  • 0.1x 早期孵化版本

  • 1.x 优化streams API,增强可观测性和可调试性,支持java9,优化SASL

  • 2.X 性能提升,增强acl支持

  • 3.x 去掉zookeeper依赖,支持java17,不再支持java8,不再支持v0和v1消息,性能大幅提升

推荐使用2,x和3.x版本

Kafka Metric监控

Producer指标

生产者将消息推送到Broker Topic的应用,如果生产者失败,消费者将得不到新的消息。

Broker指标

因为所有的消息必须通过kafka broker才能被使用,所以对集群中Broker的监控是最核心。

Consumer指标

consumer是kafka消息终点

zookeeper指标

zookeeper是kafka的一个关键组件(v3.0)之前,zookeeper停机将使kafka停止运行。

kafka典型问题和排查

topic消息发送慢,并发性能低

某个或者某几个Topic的消息并发发送性能低,在指标上体现为producer的平均请求延迟大,平均生产吞吐量小

通常消息发送慢如下几种典型原因:

  • 网络带宽不足,导致IO等待

  • 消息未压缩,导致网络流量超负荷

  • 消息未批量发送,或者批量阈值配置不恰当,导致发送速率慢

  • topic分区数量不足,导致broker接收消息积压

  • broker磁盘性能低,导致磁盘同步慢

  • broker分区总量过多,导致碎片化,磁盘读写过载‘

排查

  • 确认producer的平均IO等待时间指标是否符合预期或者陡增,以便producer到broker之间的网络带宽是否满足业务的流量要求

  • 确认producer的平均压缩率指标,确保要压缩率符合预期

  • 确认producer的平均请求包大小是否过小,如果是的化,需要考虑增大producer发送消息的batchsize,同时调整linger.ms的阈值

  • 查看topic分区数量,分区较小的时候,考虑增加分区数,以水平扩展broker的并发接收消息容量

  • 确认borker磁盘IO使用率是否在安全范围之内,如果使用率已经较高,则考虑垂直或者水平扩容Broker,同时考虑增加topic分区数,提升topic并接收消息能力

  • 查看集群的总分区数和单个boker的分区数量,确保在规划的容量范围之内。


topic消息堆积

某个或者几个topic的消息堆积持续增加,在指标上直接体现为group消费延迟数量持续增加

常见的消息堆积有如下几种原因:

  • producer生产消息流量增大

  • consumer由于业务变化导致消费延迟增加

  • consumer数量不足

  • consumer数量频繁变化,导致group不断做再平衡rebalance

  • broker未收到consumer消息确认消息

排查

  • 确认producer的消息生产量指标是否明显增加

  • 确认consumer的消息流量指标是否明显下降

  • 通过kafka broker提供的命令,确认topic对应consumer数量与实际的consumer数量是否一致,如果不一致,说明某些consumer未正确连接到broker,需要排查consumer是否正常运行

  • 观察consumer的数量是否频繁变化而触发犯法再平衡

  • 由于网络或者其他原因,可能导致consumer与boker之间的连接不稳定,consumer能持续消费消息,但是broker却始终认为消息未确认,导致消费位点不变,此时可能需要确认consumer与broker之间的网络稳定性,甚至重启consumer


链接:https://blog.51cto.com/u_11555417/6177911

(版权归原作者所有,侵删)


微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
警惕!纽约新骗局,你遇到过吗?【申请】关于Alevel的预估分几个常见问题!关于Alevel的预估分几个常见问题!关于心力衰竭诊治,这五个问题你都能答对吗?golang中使用kafka的综合指南手术麻醉中常见13条危急情况的处理流程在新西兰搭乘火车旅行,会看到哪些惊人美景?小姐姐直呼:好像梦境幻化成现实!家中常用物竟致癌? 加拿大人集体诉讼索赔12亿元6054 血壮山河 卢沟桥之变 23坏男人的诗篇日本经营管理签证七大常见问题!假如你是开源项目维护者,遇到这种回复能忍到哪步?开放or封闭,不是问题的问题,问题在哪里?52、长篇民国小说《永泰里》第十一章 铁蹄之下(1)美国签证攻略,常见的问题有哪些?Python中常用内置函数工作中常用Redis的10种场景,太经典了!考研转留学!来看看QS前100英国大学2024硕士录取要求,你能申请到哪些大学?174问!自然科学基金委更新2024网络版科学基金项目管理常见问题解答ubuntu中常用快捷键整理内镜下遇到这样的病灶,你会如何处理?(常见又特别)关于咖啡因对心血管健康影响,这五个问题你都能答对吗?涨知识 | 有哪些我们误以为古代没有,但很常见的东西?对谈谌旭彬:从清末改革中,我们能学到哪些历史教训?| 今日直播日本经营管理签证七大常见问题!答案在这里你遇到过的最好的manager是什么样的?工作中常用的 git 命令,收藏版!【Golang】defer的这些坑,你遇到过吗?实用 | 如何注册科伦坡港口城授权主体?常见问题答疑!咱以为咱是谁多国禁用!加拿大人家中常用物被曝致癌,遭集体索赔$12亿!透析“在新泽西买卖和新建房屋”的常见问题,及税费考量 | 移投路直播间预告里斯亭记录:老师,您辛苦了,抑郁症,小时候直肠癌患者做放疗哪些副作用最常见?少做一两次放疗影响大吗?冬日韩国游,来申请韩国签证!韩国签证如何办理?韩国签证最常见问题全解析!
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。