Kafka消费者策略
截止本文书写时间,当前的kafka版本到了3.4,因此请注意你使用的版本。同时截至当前最新的kafka一共有四种消费者策略。
第一种叫做RangeAssignor
,也叫range范围分配,是kafka的默认消费者策略。对一个消费者组来说,消费方式是以分区总数除以消费者总数来决定,一般如果不能整除,往往是从头开始将剩余的分区分配。
第二种是RoundRobinAssignor
,也叫round轮训分配,说的是对于同一组消费者来说,使用轮训的方式来决定消费者消费的分区,既依次分配一个,直到分区被分配完毕。
第三种叫StickyAssignor
,是在0.11.x新增的,保证分配最大程度地平衡,同时保留尽可能多的现有分区分配。意思就是前面两个当同组内有新的消费者加入或者旧的消费者退出的时候,会从新开始决定消费者消费方式,但是Sticky在同组中有新的消费者加入或者旧的消费者退出时,不会直接开始重构分配策略,而是保留现有消费者消费策略,将退出的消费者所消费的分区平均分配给现有消费者,新增消费者同理,同其他现存消费者的消费策略中分离
第四种叫做CooperativeStickyAssignor
,它继承了StickyAssignor的逻辑,但允许重构分区策略。
不过后两种消费策略很少有厂商用,大家一般说消费策略只说两个,因为kafka本身是大数据领域中一个很重要的组件,而使用它时动态的增加与减少消费者这种需求发生的概率相当小,大家一般都是从计算开始到计算结束一直计算到底,不计算的时候就挣个关掉了。
如需最新的kafka架构信息,请查询它的官网–》kafka官网,比如下图中的消费者策略相关信息文档
上图截取自于3.4版本的kafka文档,如果大家使用的是之前的版本,可能没有CooperativeStickyAssignor
Kafka消费者策略相关推荐
- 【Kafka】Kafka消费者组三种分区分配策略roundrobin,range,StickyAssignor
文章目录 1. 分配策略 1.1 Range(默认策略) 1.2 RoundRobin RoundRobin的两种情况 1.3 StickyAssignor 2. Range策略演示 参考 相关文章 ...
- kafka消费者开发方式小结
[README] 1, 本文总结了 kafka消费者开发方式: 2, 本文使用的是最新的kafka版本 3.0.0: [1] kafka消费则 [1.1]消费者与消费者组 1)消费者: 应用程序需要创 ...
- (转)Kafka 消费者 Java 实现
转自: Kafka 消费者 Java 实现 - 简书应用程序使用 KafkaConsumer向 Kafka 订阅 Topic 接收消息,首先理解 Kafka 中消费者(consumer)和消费者组(c ...
- java客户端作为kafka消费者测试
[README] 本文主要对 java客户端作为kafka 消费者进行测试, 生产者由 kafka客户端扮演: [1]普通消费者 设置消费者组: 重置消费者的offset, 即每次都从最头开始消费(默 ...
- Kafka(三):kafka消费者
文章目录 1. 消费方式 2. 消费者总体工作流程 2.1 消费者组 2.2 消费者组初始化流程 2.3 消费者组详细消费流程 3 消费者重要参数 4. 分区的分配以及再平衡 4.1 Range以及再 ...
- kafka基础篇(四)——kafka消费者客户端
一.入门程序 先上代码,从代码入手,讲解kafka消费者客户端的细节. public class HelloKafkaConsumer {public static void main(String[ ...
- Kafka 3.0 源码笔记(3)-Kafka 消费者的核心流程源码分析
文章目录 前言 1. 消费者负载均衡的实现 2. 源码分析 2.1 KafkaConsumer 的初始化 2.2 KafkaConsumer 的消息拉取 2.2.1 消息拉取的准备及入口 2.2.2 ...
- kafka基础入门(4):kafka消费者
kafka消费者 kafka消费方式 kafka采用pull(拉)模式,consumer从broker中拉取数据 pull模式的不足:如果Kafka没有数据,消费者可能会陷入循环中,一直返回空数据 k ...
- Kafka消费者原理解析
文章目录 消费者和消费组 创建Kafka消费者 rebalance 分区再均衡 rebalance触发时机 rebalance 分区分配策略 rebalance generatian rebalanc ...
最新文章
- MPB:南京​湖泊所王建军组-​群落构建过程的定量指标——扩散-生态位连续体指数...
- 还是两个数的交换问题
- 160个Crackme031之一元二次方程
- php 保护变量,保护PHP中的“包含污染”变量
- vue 生成发布包_Vue 3.0 终于正正正正正式发布了!
- (转载)C中实参与形参的“值传递”只能“单向传送”(透彻的理解)
- 在SQL Server 2000中使用Transact-SQL建立数据库
- 为什么运行review manager很卡顿_手机明明没坏,为什么声音开到最大依然很小?原来问题在这里...
- 修改表字段属性_设置对象表字段的有效性规则
- kotlin中文开发文档+视频教程+Android Studio 3.0下载地址
- 官方示例之地球模块五:ThingLayer
- 前端开发过程中经常遇到的问题以及对应解决方法 (持续更新)
- 工业设计三维软件有哪些?
- 回归分析beta值的标准_Beta值的基本原理及使用说明
- Python连接多种数据库的方式
- vmware断网安装Ubuntu纪实
- k3cloud开发实例
- linux 键盘过滤,键盘过滤驱动程序不responsing
- python蚂蚁森林自动偷能量_蚂蚁森林自动偷能量app
- 视频下载神器you-get使用方法
热门文章
- Prim算法(java)
- 发现了二分查找的秘密
- 关于医疗区块链(Medical Block Chain)的杂谈,以及其他
- 2021-08-18 Win10安装Oracle 11g时遇到“【INS-13001】此环境不满足最低配置”的问题解决措施
- ntp时间同步服务器(Windows)搭建(一)
- matlab2020a无法打开setup程序
- java验证cron表达式_Cron表达式详解和表达式的验证
- 第七届数据挖掘、通信与信息技术国际会议征稿通知(DMCIT 2023)
- 【密码学】破解维吉尼亚密码(C++代码实现)
- 计算机考试多余操作会扣分吗,计算机二级MS Office考试多余的操作步骤会扣分吗...