![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
kafka源码剖析课
文章平均质量分 95
杨四正的源码剖析课
公众号:杨四正
展开
-
5、深潜KafkaProducer——Sender线程
通过上一课时的介绍我们了解到,业务线程通过 KafkaProducer.send() 方法将 message 放入 RecordAccumulator 中进行能缓冲,并没有进行实际的网络 I/O 操作,真正的网络 I/O 操作是由 Sender 线程完成。首先我们回到 KafkaProducer 的构造方法中,我们可以看到: 12345 // 创建Sender对象,Sender实现了Runnable接口this.sender = newSender(log原创 2021-05-26 18:31:50 · 619 阅读 · 0 评论 -
4、深潜KafkaProducer —— RecordAccumulator精析
通过上一课时的介绍我们了解到,业务线程使用 KafkaProducer.send() 方法发送 message 的时候,会先将其写入RecordAccumulator 中进行缓冲,当 RecordAccumulator 中缓存的 message 达到一定阈值的时候,会由 IO 线程批量形成请求,发送到 kafka 集群。本课时我们就重点来看一下 RecordAccumulator 这个缓冲区的结构。首先,我们从上图中可以看出,RecordAccumulator 会由业务线程写入、Sender 线程读原创 2021-05-26 18:29:06 · 874 阅读 · 0 评论 -
3、深潜KafkaProducer —— 核心架构
深潜 kafka producer —— 核心架构 3、深潜KafkaProducer基础架构 kafka 自定义了一套网络协议,我们可以使用任意语言来实现这套协议,实现向 kafka 集群 push message 以及从 kafka 集群 pull message 的效果。在 kafka 2.8.0 版本的源码中的 clients 模块就是官方默认提供的 Java 版本 produc原创 2021-05-18 14:07:22 · 318 阅读 · 1 评论 -
2、kafka 2.8.0 源码环境搭建
2021年杨四正的kafka源码剖析课——2、kafka2.8.0源码环境搭建安装 JDKJDK 的安装非常简单,这里我们安装 JDK 8 即可(虽然 JDK 现在的新版本是 16,但是国内生产环境还有相当一大部分还是停留在 8 这个版本上)。首先到JDK下载地址下载对应系统的 JDK 安装包即可,这里我使用的是 mac 系统,下载 dmg 文件即可。下载完成之后,双击 dmg 文件,一直下一步即可安装完成。安装 scala我们这里安装的 scala 版本是 2.13.1 版本sc..原创 2021-05-08 10:45:14 · 878 阅读 · 1 评论 -
2021年杨四正的源码剖析课——1、kafka基本概念
Apache Kafka 是一种分布式消息系统,由Scala语言编写而成。Kafak 基本概念messagemessage 是 Kafka 中最基本的数据单元,它由 key 和 value 两部分构成,KV 都为字节数组。Kafka 会按照一定的策略,将消息按照 key 值路由到指定的 partition 中,从而保证 key 相同的 message 全部写入同一 partition 中。value 是 Kafka真正传递的业务数据。topic、partition、brokertopic.原创 2021-05-06 10:20:54 · 259 阅读 · 0 评论