IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 消费者组重平衡如何避免吗?Rebalance -> 正文阅读

[大数据]消费者组重平衡如何避免吗?Rebalance

1.了解“协调者” Coordinator

在Kafka中"协调者",专门为消费组服务,负责为组执行Rebalance以及提供位移管理组员管理等。

2.kafka确定消费组的协调者所在Broker的算法有2个步骤

步骤1

 	确定位移主题的那个分区来保存该Group组数据:通过分区策略(比如 轮询、随机)但是这里用的是HashPartitioner哈希
 分区,partitionId=Math.abs(groupId.hashCode() % offsetsTopicPartitionCount)。通过hash值处于分区数进行。

步骤2

找出该分区的Leader副本所在Broker,该 Broker 即为对应的 Coordinator。

3.Rebalance的缺点

缺点也很简单,就是类似JVMGC 垃圾回收会停下手里的一切事去进行Rebalance,并且由于我们常用kafka的版本它进行rebalance会出现以下问题:

3.1 理想情况下

当消费者3倍踢出消费组的时候,协调者应该以最小的消耗去将多余消息分配给其余消费者,但是实际情况下不是这样。
在这里插入图片描述

3.2 真实情况

将消费者3去掉后,是将所有的消息重组放入其余消费者中。
在这里插入图片描述

4.如何避免Rebalance 重平衡

我们站在消费端的角度来看(组成员数量发生变化)

4.1 第一类非必要 Rebalance ,未能及时发送心跳,导致 Consumer 被“踢出”Group而引发的

解决方法:

#单位ms 设置心跳传送时间几毫秒一次 ,默认是3000ms
heartbeat.interval.ms

#单位ms 多长时间没有心跳,后连接超时,默认10000ms
session.timeout.ms

比如
设置 session.timeout.ms = 6000。
设置 heartbeat.interval.ms = 2000。
这样就正常情况下最起码会发3次心跳给broker

4.2 第二类非必要 Rebalance 是 Consumer 消费时间过长导致的

这个参数最好设置大一些,比如你逻辑处理最长要10分钟,那你需要设置的比这个大为你的业务处理逻辑留下充足的时间,从而防止超时导致Rebalance。

#使用消费者组管理时调用 poll() 之间的最大延迟。这为消费者在获取更多记录之前可以空闲的时间量设置了上限。
#如果在此超时到期之前未调用 poll(),则认为消费者失败,组将重新平衡,以便将分区重新分配给另一个成员。
# 默认3000ms
max.poll.interval.ms

4.3 如果还有问题就考虑GC问题

由于频繁发生Full GC 而导致非预期的Rebalance

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-04-07 22:46:53  更:2022-04-07 22:47:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 5:34:38-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码