Kakfa 入门到起飞 - Kafka 遭大家诟病了?因为啥?啥是再平衡?

news2024/11/29 0:48:04

Kafka 遭大家诟病了?因为啥?啥是再平衡?

再均衡是Kafka被大家诟病最多的一个点,再平衡是非常麻烦的一个事,那么就让我们来看看

到底什么是再平衡呢?

再平衡其实就是一个 协议,它规定了消费者组下的消费者如何分配主题下的分区
比如:topic有100个分区,一个消费者组内有20个消费者,在coordinator的控制下,一个消费者分配到5个分区,那么这个分配的过程就叫再平衡

那么什么时候会发生再平衡呢?

有3种情况会触发再平衡,

  1. 消费者组内消费者发生变更,增加消费者、减少消费者、消费者宕机退出消费者组等
  2. 主题下分区数发生变更,Kafka当前值支持增加分区,当增加分区时会触发再平衡
  3. 当消费主题数发生变更时,会触发再平衡,

消费主题数变更的情况就是,当消费者组订阅主题通过正则或者通配符的方式,比如topic.*这样,当新增一个主题topic.A,那么相当于这个新增主题下的消息自动被当前消费者组订阅了,需要将分区进行分配,那么就会触发一次再平衡


下面我们逐个情况来看下:比如当前分区分配情况如下图,一个分区一个消费者,均匀分配
在这里插入图片描述

1、运行过程中,consumer4突然宕机,退出消费者组,触发再平衡,此时消费者组中所有消费者都要停下来,将当前4个分区重新分配给剩余3个消费者,这时就会有一个消费者分配到两个分区,如下图所示
在这里插入图片描述

2、运行过程中,有一个broker实例突然宕机,比如分区3所在的broker宕机了,那么分区3的leader分区(Kafka都是leader分区对外提供读写服务)就不可用了,此时会有分区3的副本分区会转换为leader分区继续提供服务的过程,但是只要broker宕机,就会触发再平衡在这里插入图片描述
3、当我们给Topic主题增加一个分区,那么也会触发一次再平衡,比如Topic新增了一个分区4,那么要把分区4分配给一个消费者,如下图在这里插入图片描述

4、消费者通过正则表达式的方式订阅主题,比如topic_//d ,订阅topic_1…topic_9 这样的主题,这时如果新增一个满足条件的主题,也会触发再平衡,如下图在这里插入图片描述


那么为什么大家会诟病再平衡这个事呢?

因为在再平衡过程中,消费者组下的所有消费者需要暂停,无法从Kafka消费消息,这样Kafka的消费能力突然就下来了,如果Kafka集群比较大,几百个节点,那么再平衡会消耗非常多的时间,几分钟到几小时都有可能,这个时间内Kafka基本处于不可用状态


那么在生产中,我们怎么尽量避免发生再平衡呢?

很多情况下broker是误判消费者宕机了,认为服务器宕机了,

在消费者场景中,给我们提供了几个参数可以用来调优,减少Kafka误判的可能性
session.timeout.ms 参数设置,broker端在指定时间内没有收到消费者发送的心跳,那么就认为消费者宕机了,所以在网络不佳的情况下,我们可以将这个值设置的大一些

heartbeat.interval.ms 参数设置,发送心跳的频率,频率设置越高,越不容易被误判,但是不断发送心跳也会消耗更多资源,需要取舍

max.poll.interval.ms 参数设置,消费者每次拉取数据的时间间隔,默认5min 五分钟没有收到消费和拉取数据broker就认为这个消费者宕机了

推荐设置如下:

session.timeout.ms 设置为6s
heartbeat.interval.ms 设置为2s
max.poll.interval.ms 设置为处理消息最长耗时+1min

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/793126.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

0成本搭建自己的云数据库

第一步,租免费的云服务器 www.aliyun.com 阿里云的,可以免费租三个月 进入主页后选择云服务器ESC 选择这款,点击试用就行 第二步,配置服务器 在配置服务器系统的时候选择centos,省事,别选ubuntu&#x…

Windows 不同方式打开的cmd/dos窗口属性配置不同

文章目录 1. 默认值(控制台窗口)属性2. "C:\Windows\System32\cmd.exe" 属性3. "命令提示符"属性4. 自定义某标题cmd窗口属性5. cmd快捷方式的属性总结 最近在写某个批处理脚本时,意外发现 Windows系统中,在不…

Is Mapping Necessary for Realistic PointGoal Navigation 论文阅读和代码分析

论文 论文信息 题目:Is Mapping Necessary for Realistic PointGoal Navigation? 作者:Ruslan Partsey、 Erik Wijmans 代码地址:rpartsey.github.io/pointgoalnav 来源:CVPR Abstract 目标:证明显式地图不是成功…

工信部、国家标准委联合印发《国家车联网产业指南(2023 版)》

国家工信部和标委发布了最新的《国家车联网产业标准体系建设指南(智能网联汽车)(2023 版)》,了解这篇文章,不论您是智能网联汽车的追随者,还是对智能网联汽车产业前景感兴趣的人,都非…

力扣热门100题之除自身意外数组的成绩【中等】

题目描述 给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请不要使用除法,且在 O(n)…

Oracle 迁移 Hive 过程中遇到的问题总结

前言 最近一个小伙伴在做从 Oracle 到 Hive 的业务迁移工作,在迁移过程中属实遇到了一些坑,今天就来汇总一下这些坑,避免以后大家其他业务迁移的时候再出现类似的问题,即使出现了也可以拿过来进行对照解决。 问题1:Distinct window functions are not supported: count(…

matlab二维图形的绘制(1)

概述 matlab数学计算中有时候需要将函数通过图形更加直观的展示给用户的时候就需要使用到二维绘图。绘图常常采用的绘图命令便是 plot ,再添加一些辅助命令使得图形更加的形象直观。 二维绘图中也包括针状图,阶梯图,散点图,条形图…

Emacs之实现跨程序选中自动复制功能(一百一十八)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

阿里云服务器配置 内存,cpu等等

实例升配,https://help.aliyun.com/document_detail/25438.html?spma2c4g.11174283.6.780.2cbf4c070oeino#title-a5t-gg2-

分布式文件存储与数据缓存 Redis高可用分布式实践(上)

一、Reids概述 1.1 为什么要使用NoSQL 单机Mysql的美好年代 在90年代,一个网站的访问量一般都不大,用单个数据库完全可以轻松应付。在那个时候,更多的都是静态网页,动态交互类型的网站不多。 遇到问题: 随着用户数的…

异构线程池的c++实现方案

概要 通常线程池是同质的,每个线程都可以执行任意的task(每个线程中的task顺序执行),如下图所示: 但本文所介绍的线程和task之间有绑定关系,如A task只能跑在A thread上(因此称为异构线程池&am…

《脱离“一支笔、一双手、一道力扣”困境的秘诀》:突破LeetCode难题的五个关键步骤

导言: 在解决LeetCode等编程题时,不少人会陷入“一支笔、一双手、一道力扣(LeetCode)做一宿”的困境。尽管已经掌握了相关知识和算法,但在实际挑战中却无从下手。本文将分享如何摆脱这一困境的秘诀,让你在面…

Java带符号右移(>>)、不带符号右移(>>>)

Java的右移涉及带符号右移(>>)、不带符号右移(>>>)。 对于正数,因为符号位是0,带符号右移和不带符号右移左侧都用0填充,所以结果相同。 对于负数,因为符号位是1&…

python + requests实现的电商API接口自动化框架详细教程

1、首先,我们先来理一下思路。 正常的电商接口测试流程是什么? 脑海里的反应是不是这样的: 确定测试接口的工具 —> 配置需要的接口参数 —> 进行测试 —> 检查测试结果(有的需要数据库辅助) —> 生成测…

第一节:我用Python论证移动平均线(MA)真的靠谱吗?

视频地址:点我查看文章配套视频 什么是MA 所谓“移动平均线”是指一段时间内股票价格的算术平均线,通常以收盘价作为计算值。它是一种趋向类技术指标。 在证券投资中,要赚钱无非是降低成本、提高收入,以期获得较高利润&#xff0…

内存泄漏是什么?有什么危害

内存泄漏是什么?有什么危害 1. 前言1.内存泄漏是什么?2. 为什么会发生内存泄漏3. 内存泄漏的危害4. 总结 1. 前言 在各种项目开发中,内存泄漏是一个很严重的问题。对资源管理、性能优越、系统稳定性,以及是否安全产生极大印象。本…

Seaborn库绘制单变量分布和双变量分布

Matplotlib虽然已经是比较优秀的绘图库了,但是它有个今人头疼的问题,那就是API使用过于复杂,它里面有上千个函数和参数,属于典型的那种可以用它做任何事,却无从下手。 Seaborn基于 Matplotlib核心库进行了更高级的API…

1-Linux的目录结构

Linux的目录结构是规定好的,不可以随意进行更改! Linux的文件系统是采用级层式的树状目录结构,最上层是根目录–/,然后再在根目录下创建其它的目录。 各个目录中主要负责的功能和作用如下:(主体的结构一定…

TypeScript入门学习汇总

1.快速入门 1.1 简介 TypeScript 是 JavaScript 的一个超集,支持 ECMAScript 6 标准。 TypeScript 由微软开发的自由和开源的编程语言。 TypeScript 设计目标是开发大型应用,它可以编译成纯 JavaScript,编译出来的 JavaScript 可以运行在…

65英寸OLED透明屏的显示效果出色吗?

65英寸OLED透明屏是一种新型的显示技术,它采用有机发光二极管(OLED)作为显示元件,具有高亮度、高对比度、快速响应和广视角等优点。 与传统的液晶显示屏相比,OLED透明屏具有更高的透明度和更好的显示效果。 OLED透明屏…