【原创】kafka client源代码分析
该包下只有一个文件:ClientUtils.scala。它是一个object,里面封装了各种client(包括producer,consumer或admin)可能会用到的方法:
- 构造一个TopicMetadataRequest请求
- 将给定的broker列表按照随机顺序打散以防止大量的请求被路由到同一个broker上
- 遍历打乱顺序后的broker列表,尝试着为每一个broker构造一个sync producer连向它并发送请求,如果成功就退出遍历,否则就记录一个警告信息然后尝试下一个broker
- 但如果遍历完之后request都没有被成功发送,抛出异常退出,否则返回得到的response
2. fetchTopicMetadata(非producer版本):非producer客户端程序会调用该方法来发送一个元数据请求,真正的逻辑也是通过调用上一个版本的fetchTopicMetadata实现。
转载于:https://www.cnblogs.com/huxi2b/p/4563469.html
【原创】kafka client源代码分析相关推荐
- 【原创】k8s源代码分析-----kubelet(8)pod管理
本文QQ空间链接:http://user.qzone.qq.com/29185807/blog/1460540474 本文csdn博客链接:http://blog.csdn.net/screscent ...
- 你绝对能看懂的Kafka源代码分析-KafkaConsumer类代码分析
目录: <Kafka Producer设计分析> <KafkaProducer类代码分析> <RecordAccumulator类代码分析> <Sender类 ...
- Spring Security——OAuth 2.0 Client自动配置源代码分析
基本概念 OAuth2.0:OAuth2.0是OAuth协议的延续版本,但不向前兼容OAuth 1.0(即完全废止了OAuth1.0). OAuth 2.0关注客户端开发者的简易性.要么通过组织在资源 ...
- Android系统进程间通信(IPC)机制Binder中的Client获得Server远程接口过程源代码分析(2)...
注意,这里的参数reply = 0,表示这是一个BC_TRANSACTION命令. 前面我们提到,传给驱动程序的handle值为0,即这里的tr->target.handle = ...
- 你绝对能看懂的Kafka源代码分析-Kafka Producer设计分析
之前我写了<Kafka入门教程轻松学>系列文章,半年来有1万多的阅读量,虽然不算很多,但看到很多朋友的支持,也给了我继续写下去的动力.接下来我会再写一个系列文章----<你绝对能看懂 ...
- Spark SQL之External DataSource外部数据源(二)源代码分析
上周Spark1.2刚公布,周末在家没事,把这个特性给了解一下,顺便分析下源代码,看一看这个特性是怎样设计及实现的. /** Spark SQL源代码分析系列文章*/ (Ps: External Da ...
- Windbg调优Kafka.Client内存泄露
从来没写过Blog,想想也是,工作十多年了,搞过N多的架构.技术,不与大家分享实在是可惜了.另外,从传统地ERP行业转到互联网,也遇到了很所前所未有的问题,原来知道有一些坑,但是不知道坑太多太深.借着 ...
- Android应用程序进程启动过程的源代码分析(1)
Android应用程序框架层创建的应用程序进程具有两个特点,一是进程的入口函数是ActivityThread.main,二是进程天然支持Binder进程间通信机制:这两个特点都是在进程的初始化过程中实 ...
- 聊聊kafka client chunkQueue 与 MaxLag值
为什么80%的码农都做不了架构师?>>> 序 前面一篇文章讨论了ConsumerFetcherManager的MaxLag与ConsumerOffsetChecker的lag值 ...
最新文章
- 人工神经网络是如何实现存算一体的
- 社团发现算法-BGLL算法(附代码实现)
- mysql 和 sqlite 区别 及 SQLite Expert Professional sqliteManager 区别
- python安装教程windows-Python for windows 安装教程
- 五年级计算机学情分析,2015—2016学年小学五年级信息技术上册教学计划
- hdu 1692(枚举+剪枝)
- 重庆理工大学两江校区计算机学院,重庆理工大学两江校区国际项目9月开学
- 专攻国内实体瘤CAR-T细胞疗法,南京卡提医学获数千万元A轮融资...
- 小米随身WIFI去掉云U盘的方法
- 【语音处理】开始学习语音,从基本概念和应用讲起
- div半透明背景,文字不透明
- 【Struts】:Struts1和Struts2的区别与联系
- 苏黎世大学SVO2安装教程
- 计算机联锁光带解锁,计算机联锁中三点检查解锁逻辑初探
- 服务器过载保护(下篇)——过载处理新方案
- 用html制作四行四列的表格,HTML表格元素
- 阿里天池心跳信号分类预测baseline
- Unity3D 对于在VR中普通摄像头和VR摄像头同时存在——分屏
- 2021清华本科特奖答辩现场:有人用AI识别甲骨文!有人研究6G!奥运冠军:走下领奖台一切归零...
- FIL筑底完成,现在布局FIL不容忽视
热门文章
- linux中fork和exec
- sess.run接收返回值得变量和sess.run函数內的tensor型变量命名注意不能一致,影响迭代,产生报错:Can not convert a ndarray into a Tensor
- win7系统硬盘安装centos7(easyBCD)
- 概率论-4.4 特征函数(待补充)
- android studio for循环快捷键,Android Studio 快捷键 for Mac OS X
- Andorid App内部跟随熊语言改变
- 15.10.4 捕获异常
- log4j xml配置详解
- 查看dll文件被哪些软件调用的命令
- Java开源项目EZMorph简介