文章目录

技术交流 专家服务

Topic分区热点

KM解决分区热点问题 Topic分区不足 Topic资源治理 异常诊断

项目地址: didi/Logi-KafkaManager: 一站式Apache Kafka集群指标监控与运维管控平台

专家服务

====================================================================

直观的展示和分析当前被管理的集群中出现的问题; 以及可视化运维

Topic分区热点

看到这个词,我们可以先想一想 什么是分区热点,什么情况下会出现分区热点情况;

按照我的理解,我将其罗列为以下几点

什么是分区热点

Topic分区上数据分配不均衡

造成的原因: 当生产者指定了分区数 或者key的时候, 有可能造成某个分区的消息生产速率远远大于其他分区

分区Leader在多个集群中分配不均

造成的原因:多个Broker宕机,导致宕机的Broker上的分区Leader转移到其他Broker上,恢复之后也没有触发 Leader Rebalance, 就会导致,某些Topic的分区Leader分配不均匀;

还有就是新增了很多Broker,某些原因造成新的Broker没有分配到Leader, 又或者把其他分区迁移到了别的 分区等等都会造成这样的问题;

上面的第一种,属于业务逻辑上的热点,我们没法控制,

但是第二种情况可以算作是集群异常点了, 需要我们重新去重新做一下 Leader Rebalance

那么意思是不是只要做一下 Leader Rebalance就解决了?像其他问题导致优先副本本身就不均衡,你再LR也没有用

所以更好的解决办法就是做一下数据迁移;

KM解决分区热点问题

KM判断分区热点逻辑

平台配置

KEY:REGION_HOT_TOPIC_CONFIG

VALUE:

minTopicBytesInUnitB: Topic最近一分钟的每秒评价流量 的阈值 默认3M=3_1024_1024

maxDisPartitionNum: Broker直接最大的分区数差值

ignoreClusterIdList: 忽略的物理集群ID

判断逻辑

还有一个判断逻辑是 maxDisPartitionNum: Broker直接最大的分区数差值 ;

像下面的这种分配情况,2-0=2; 如果你的配置 maxDisPartitionNum=1 那么肯定就满足了条件了

KM 解决分区热点–数据迁移

这里的迁移任务跟 Kafka的灵魂伴侣Logi-KafkaManger(4)之运维管控–集群运维(数据迁移和集群在线升级) 是一样的; 这里就不讲解了,不过这里选择的目标BrokerID是默认当前Topic所归属的所有Region下的所有Broker; (相当于把分区在选择的Broker中重新分配了一下)

Topic分区不足

按照一定的规则,来判断是否分区不足, 主要就是计算一下 Topic最近一分钟的平均流量值 / 分区数 是否超过某个阈值(阈值可以自定义);

自定义阈值

首先可以在平台配置那里自定义 判断的条件限定值; (不设置也可以,有默认值)

KEY: TOPIC_INSUFFICIENT_PARTITION_CONFIG

VALUE:

{

“maxBytesInPerPartitionUnitB”: 3145728,//每个分区近一分钟的(btyesIn B/s)的最大值 默认是 3M = 310241024

“minTopicBytesInUnitB”: 3145728,//Topic的近一分钟的(btyesIn B/s)值 要大于这个值; 默认是 3M = 310241024

“ignoreClusterIdList”: [ //忽略指定的物理集群; 默认空

0,

1

]

}

判定逻辑伪代码

for(遍历所有Topic){

//(BytesInPerSecOneMinuteRate 表示最近一分钟Topic流入的byteIn(KB/s)值;)

if(ignoreClusterIdList){

忽略

}

if(BytesInPerSecOneMinuteRate <= minTopicBytesInUnitB){

忽略

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

总结

就写到这了,也算是给这段时间的面试做一个总结,查漏补缺,祝自己好运吧,也希望正在求职或者打算跳槽的 程序员看到这个文章能有一点点帮助或收获,我就心满意足了。多思考,多问为什么。希望小伙伴们早点收到满意的offer! 越努力越幸运!

金九银十已经过了,就目前国内的面试模式来讲,在面试前积极的准备面试,复习整个 Java 知识体系将变得非常重要,可以很负责任的说一句,复习准备的是否充分,将直接影响你入职的成功率。但很多小伙伴却苦于没有合适的资料来回顾整个 Java 知识体系,或者有的小伙伴可能都不知道该从哪里开始复习。我偶然得到一份整理的资料,不论是从整个 Java 知识体系,还是从面试的角度来看,都是一份含技术量很高的资料。

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取! 不知道该从哪里开始复习。我偶然得到一份整理的资料,不论是从整个 Java 知识体系,还是从面试的角度来看,都是一份含技术量很高的资料。**

[外链图片转存中…(img-BRBAJTdn-1713213362462)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

精彩链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: