0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

kafka中常见问题你遇到哪些

马哥Linux运维 来源:51cto 2024-01-22 11:08 次阅读

kafka核心概念

c6e7fd84-b830-11ee-8b88-92fbcf53809c.jpg

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的应用,如果生产者失败,消费者将得不到新的消息。

c6f50b8c-b830-11ee-8b88-92fbcf53809c.jpg

Broker指标

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

c7082a3c-b830-11ee-8b88-92fbcf53809c.jpg

c71a9154-b830-11ee-8b88-92fbcf53809c.jpg

c724e1fe-b830-11ee-8b88-92fbcf53809c.jpg

Consumer指标

consumer是kafka消息终点

c733f6f8-b830-11ee-8b88-92fbcf53809c.jpg

zookeeper指标

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

c7443e5a-b830-11ee-8b88-92fbcf53809c.jpg

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

审核编辑:黄飞

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • JAVA
    +关注

    关注

    19

    文章

    2960

    浏览量

    104565
  • kafka
    +关注

    关注

    0

    文章

    50

    浏览量

    5211

原文标题:kafka中常见问题你遇到哪些

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    ORCAD使用中常见问题汇集及答案

    ORCAD使用中常见问题汇集及答案 1、什么时FANOUT布线?FANOUT布线:延伸焊盘式布线。为了保证SMD器件的贴装质量,一般遵循在SMD焊盘上不打孔的原则,因此用f
    发表于 07-02 22:00 9177次阅读

    PADS常见问题总结

    PADS常见问题,帮助你理解那些困扰的琳琳碎碎。
    发表于 11-06 15:18

    电压开关中常见问题及解决方案

    电压开关中常见问题及解决方案
    发表于 05-23 10:05

    浅析kafka

    kafka常见问题
    发表于 09-29 10:09

    线切割加工中常见问题处理

    线切割加工中常见问题处理 在乳化油的生产过程中一般都会加入一些挥发性的稳定剂,如果在生产过程中不能按工艺要求操作或者使用了劣质的基础油作为原料都有
    发表于 08-21 11:30 4697次阅读

    电动车用电池使用中常见问题及原因分析

    电动车用电池使用中常见问题及原因分析    
    发表于 11-11 14:10 861次阅读

    垂直热风整平中常见问题解决办法

    垂直热风整平中常见问题解决办法   热风整平又叫喷锡,它的工作原理是利用热风将印制板表面及孔内多余焊料去掉,剩余焊料均
    发表于 03-02 09:35 786次阅读

    综合布线施工中常见问题总汇

    综合布线施工中常见问题总汇 综合布线,对于任何一个系统集成商,不管它是自封的也好,还是真正取得了相应N级资质的公司也罢,
    发表于 04-14 11:50 777次阅读

    电压开关中常见问题及解决方案

    电压开关中常见问题及解决方案 设计自动化的测试系统开关需要搞清楚要开关信号和要执行测试的特点。例如,在测试应用中承受开关电压信号的
    发表于 05-05 17:32 1131次阅读

    Keil编译常见问题

    吴鉴鹰总结的Keil 编译常见问题,吴鉴鹰总结的Keil 编译常见问题
    发表于 07-22 15:31 10次下载

    RF电路设计中常见问题及解决方案

    RF电路设计中常见问题及解决方案
    发表于 01-11 12:55 32次下载

    数字对讲模块使用常见问题

    介绍DMR对讲开发中常见问题
    发表于 10-20 10:24 1次下载

    CAN总线常见问题解答

    CAN总线常见问题解答,面试中常问。
    的头像 发表于 12-27 13:47 1438次阅读
    CAN总线<b class='flag-5'>常见问题</b>解答

    电气设计中常见的电磁技术,了解多少?

    电气设计中常见的电磁技术,了解多少?
    的头像 发表于 12-07 14:29 1150次阅读
    电气设计<b class='flag-5'>中常见</b>的电磁技术,<b class='flag-5'>你</b>了解多少?

    石英谐振器应用中常见问题及解决方案

    石英谐振器应用中常见问题及解决方案 石英谐振器是一种广泛应用于电子设备中的振荡器。它通过石英晶体的谐振效应来提供稳定的频率信号。然而,在实际应用中,石英谐振器可能会遇到一些常见问题。本文将探讨一些
    的头像 发表于 12-15 14:00 522次阅读