实战录 | Kafka-0.10 Consumer源码解析

kafka 0.10.0.1 consumer源码解析 消费者源码解析,基于0.10.0.1版本 初始化 consumer 对象 // 主要初始化的几个组件:new几个对象,NetworkClient、ConsumerCoordinator、Fetcher new KafkaConsumer<String, String>(properties); 拉取数据 ConsumerRecords<String, String> records = kafkaConsumer.poll(5000); // 核心方法: org.a 阅读详情
《实战录》导语

前方高能!请注意本期攻城狮幽默细胞爆表,坐地铁的拉好把手,喝水的就建议暂时先别喝了:)本期分享人为云端卫士大数据工程师韩宝君,将带来Kafka-0.10 Consumer源码解析。本文3346字,大约需要花费8-10分钟时间阅读。

Kafka在0.9版本之后,对Consumer进行了重新设计,本人也在网上看了一些Consumer源码解析博客,发现讲的都不是很详细,看过之后自己尝试去看源码的时候还是很费劲,本编将对kafka Consumer模块进行详细解析,一行一行代码的和大家讲解,内容很多,可能会分好几篇和大家分享。

看源码其实也是一件很耗时的事情,要想从代码里看懂那些大牛们的意图,肯定要费一番功夫,大家撑住劲!毕竟坚持、不懈才是硬道理嘛!

来,冲上一杯咖啡,撒一点香菜,犯困的在和点辣椒油。我们开始:

1、从Apache网站下载源码包或github上直接Checkout。2、搭建源码阅读环境。

以上两步估计吃过奶的人都会(AD钙奶,吃了身体棒),真要是没吃过,就先别看源码了,先回家吃奶吧!

启动

源码包中examples目录下有一个消费者的demo,0.10版本和之前的稍微有些差别,但改动不大,使用起来更方便,如下:

我们直接进入到第39行代码:new一个KafkaConsumer消费者实例,进入下面的构造方法中:

点击this:

在该构造方法中,首先会new一个ConsumerConfig的实例,并把key和value反序列化类的信息添加到properties中。

新建ConsumerConfig实例

在新建ConsumerConfig实例时:

1、首先会执行static静态代码块,在静态代码块中会新建一个ConfigDef实例,通过调用ConfigDef的define方法把一些Consumer端的一些配置信息包括权限配置信息等放入ConfigDef实例的configKeys中存储2、再次会调用其父类AbstractConfig的构造方法。

1.1.1 static静态代码块

这个静态代码块的代码很长,就贴一点意思意思:意思意思是啥意思?【西北风跑得快,我想和你谈恋爱】的意思。

kafka源码解析之十OffsetManager OffsetManager主要提供对offset的保存和读取,kafka管理topic的偏移量有2种方式:1)zookeeper,即把偏移量提交至zk上;2)kafka,即把偏移量提交至kafka内部,主要由offsets.storage参数决定,默认为zookeeper。也就是说如果配置offsets.storage= kafka,则kafka会把这种offsetcommit请求转变为一种Pro 阅读详情

相关推荐

Kafka监控:consumer消费进度查询方案的演变

文章目录1. 背景2. 方案一:__consumer_offsets2.1 消息格式2.2 代码3. 方案二:AdminClient3.1 流程3.2 代码 1. 背景 大数据平台经常以Kafka作为消息中间件,且需要有完整的针对Kafka的管理和监控体系,例如实时查看: current-offset:topic在不同消费者组中的消费进度 log-end-offset: topic中的可见消息总量 Lag:消费延迟,lag=logEndOffset - currentOffset 消费进度的保存机制在不同的

foureyes 726

【Flink 监控系列】Flink 自定义 kafka metrics reporter 上报 metrics 到 kafka

直接在 Flink Web UI 上面查看。通过 Flink 提供的 Metric Reporters 上报到外部系统,最终在 Grafana 上面展示。通过 Flink Rest API 接口查看。这三种方式各自有各自的使用场景,你可能会问,Flink 都已经提供了这么多种查看方式,那我们为什么还要自定义 kafka metrics reporter 呢?......

JasonLee实时计算 2998

【Kafka】Kafka指标报告器 MetricsReporter ClusterResourceListener

写这篇文章是在 【kafka】kafka 如何开启 kafka.consumer的监控指标项 在这篇文章中,我们简单的介绍了的使用方法。本章节我们主要讲解一下 指标体系。消费者相关的指定指标相关的主要 1.2.2 生产者 生产者同上FakeMetricsReporter 就是一个空实现,什么都不做。 3.JmxReporter JmxReporter是一个默认的jmx注册类。初始化中主要做了2件事,1是添加到map中,。二是注册指标 这里主要是将指标添加到mbean 关联起来 获取一个jmx长名称 3.2

九师兄 982

图像修复黑科技:对比BM3D/DnCNN等5种去噪器在PNP框架中的实战效果

本文深度评测了BM3D、DnCNN等五款主流去噪器在即插即用(PnP)优化框架中的实战表现。通过量化指标、视觉对比及超分等泛化任务测试,揭示了深度学习模型在性能与收敛速度上的优势,并为不同应用场景提供了选型指南与工程化建议。

weixin_29065959的博客 369

squirrel校园二手交易平台

squirrel校园二手交易平台 (适合寻找SSM项目练手的你。) 项目起源:   期末的课程设计,三人一组,我和两个舍友,一时起兴,决定做一个校园二手交易平台,一开始兴致与激情满满,可是后期时间上的冲突,让我们三个人对于这个项目有点累。   这个项目刚定题两天,BezosLee由于通过了360的网上在线笔试,收到了360公司的免费培训邀请,要去北京的360总部进行培训一周,值得庆...

K.SHI的博客 5万+

大语言模型无代码构建知识图谱概述

由示例可以看出,大语言模型的泛化能力能够非常精准的抽取文本中的实体、关系等知识信息。其能够大大提升知识提取的效率与准确性。HuggingFists低代码平台的出现进一步促进了知识图谱构建的效率。它大幅降低了知识图谱构建人员的技术要求,使得从事该工作的人员有了更大的选择范围。不断下降的构建成本,意味着可以有更多的客户享受到知识图谱带来的业务价值。

colorknight的专栏 1817

YOLOv11模型改进-模块-引入特征细化模块FRFN 解决小目标、遮挡等问题

FRFN 是一种专门设计的深度学习结构,旨在提高图像处理任务中的特征表示能力。它的核心设计理念是通过逐层细化和优化特征图,从而实现更高的分类和检测精度。1. 特征提取层:通过卷积层提取初始特征,并进行批量归一化以增强稳定性。2. 特征细化模块:在每个模块中,当前层特征图与前一层特征图进行融合,以强化特征表示。3. 跳跃连接:通过跳跃连接保留多尺度信息,帮助缓解深层网络中的信息丢失。4. 非线性激活:使用激活函数(如ReLU)增加模型的非线性能力。5. 输出层。

qq_64693987的博客 3337

如何理解S参数的三大特性

提到S参数的时候经常会涉及一些概念,如无源性、因果性、互易性等,本文逐一介绍这些特性的概念、成因以及判断方式。

一只豌豆象的博客 4497

STM32Cube高效开发教程<高级篇><FreeRTOS>(十八)-----软件定时器

一、 软件定时器概述声明:本人水平有限,博客可能存在部分错误的地方,请广大读者谅解并向本人反馈错误。本专栏博客参考《STM32Cube高效开发教程(高级篇)》,有意向的读者可以购买正版书籍辅助学习,本书籍由王维波老师、鄢志丹老师、王钊老师倾力打造,书籍内容干货满满。在FreeRTOS中,自动创建的任务有空闲任务和定时器服务任务。FreeRTOS可以通过定时器服务任务提供软件定时器功能。在某些对定时精度要求不太高,无须使用硬件定时器的情况下,我们可以使用FreeRTOS的软件定时器。

我的博客 157

在YOLO中扩充新类别并且不影响旧类的识别精度

让我们先从简单的部分开始:用我们的新类训练自定义 YOLOv8 模型。在本教程中,我们将向模型添加车牌类。我们将使用Roboflow 中的一个数据集。这个数据集有两个车牌类。在开始训练之前,我们还必须对库进行一些更改。为了节省时间,我还将本教程中我们将进行的更改转换为补丁该补丁包含多项更改,但大多数更改都用于指南的下一部分。if RANK!= -1:是的,我们将编写一个回调。我们希望将此自定义训练模型的头部与 COCO 预训练模型中的旧头部一起使用。

如果想成为中心,那么就到中心去吧。 1225

【Bluedroid】AVRCP 连接源码分析(一)

AVRCP连接源码分析流程是一个涉及多个步骤和协议交互的复杂过程。在源码中,需要仔细处理各种连接状态和协议交互,以确保AVRCP连接的稳定性和可靠性。同时,还需要根据具体的应用场景和需求,对AVRCP命令和响应进行定制化处理。

byte轻骑兵的技术小窝 3315

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

上一篇: 实战录 | 前端性能优化二三事儿
下一篇: 云端卫士科普~网络攻击专业名词梳理
cloudguarder
博客等级 码龄11年 21粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值