美文网首页kafka
kafka架构师3-图解kafka源码2

kafka架构师3-图解kafka源码2

作者: fat32jin | 来源:发表于2020-08-26 23:17 被阅读0次

1. 掌握内存池设计 0:20:00 ~ 0:47:44

目的: 减少fullgc 概率

原理图:

5. 内存池.png

Sender#produceRequest
onComplete 回调方法里面
—》Sender#completeBatch
—》RecordAccumulator#deallocate
—》BufferPool#deallocate()方法

2. 掌握生产者消息发送流程 0:48:00~ 1:00:00

2.1 一个batch何时可以发? 1:00:00~1:20:00

Sender#run方法

RecordAccumulator#ready

2.3 筛选可以发请求的broker 1:31:00~1:50:50

2. 筛选可以发送消息的broker.png

3. 掌握Kafka网络设计 1:50:50~2:30:00

一个客户端维护多个链接

3. Kafka的网络设计.png

终于可以发送消息了,selector.poll()方法

4. 终于发送网络请求了!.png

Sender#run()
——》this.client.poll()
——》实现类 NetworkClient#pool
this.selector.poll() 执行网络IO的操作。 NIO
——》 实现类 Selector.poll()
——》pollSelectionKeys //立马就要对这个Selector上面的key要进行处理
//TODO 核心的代码来了
//去最后完成网络的连接
//如果我们之前初始化的时候,没有完成网络连接的话,这儿一定会帮你
//完成网络的连接。
if (channel.finishConnect())
//里面不断的读取数据,读取数据的代码我们之前就已经分析过
//里面还涉及到粘包和拆包的一些问题。
while ((networkReceive = channel.read()) != null)
addToStagedReceives(channel, networkReceive);

4 . 掌握生产者处理响应消息的方法-粘包/拆包技巧 2:31:00~ 3:00:00

          接上  Selector#pollSelectionKeys 方法里面 
            if (channel.ready() && key.isReadable() && !hasStagedReceive(channel)) {
                NetworkReceive networkReceive;
    //接受服务端发送回来的响应(请求)
                //networkReceive 代表的就是一个服务端发送
                //回来的响应


                //里面不断的读取数据,读取数据的代码我们之前就已经分析过
                //里面还涉及到粘包和拆包的一些问题。
                while ((networkReceive = channel.read()) != null)
                      addToStagedReceives(channel, networkReceive);

         方法    Kafkachannel.read() 
                  ——》Kafkachannel#readFromReadableChannel    分包逻辑

回退到selector.poll() 方法
addToCompletedReceives
——》 this.completedReceives.add

相关文章

  • kafka架构师3-图解kafka源码2

    1. 掌握内存池设计 0:20:00 ~ 0:47:44 目的: 减少fullgc 概率 原理图: Sen...

  • Kafka源码分析-Content Table

    Kafka源码分析-网络层-1 Kafka源码分析-网络层-2 Kafka源码分析-网络层-3 Kafka源码分析...

  • kafka架构师4-图解kafka源码2

    1.1. 如何处理响应消息? 0;11:00 ~ 0;30:00 上节内容NetworkClient.poll 方...

  • KafkaProducer

    Kafka源码阅读(一):Kafka Producer整体架构概述及源码分析 zqhxuyuan Kafka源码分...

  • 消息队列之一: kafka

    原则: kafka版本!kafka broker及spring-boot配置看官网,看kafka源码, 源码, 源...

  • Kafka

    参考 Kafka中文 图解 Kafka 水印备份机制 Kafka ISR 副本同步机制 关于 Kafka 的一些面...

  • Kafka源码阅读准备

    目标是希望能通过idea工具阅读Kafka源码并能成功的编译Kafka源码。 源码下载 Kafka的源码地址在 h...

  • Kafka视频集

    kafka企业级入门实战完整版 Kafka系列教程 Kafka入门 分布式消息通信Kafka原理剖析 阿里架构师直...

  • Kafka源码环境搭建

    1 git上找到kafka地址 地址:Kafka源码git地址 2 下载源码 这里我们切换到1.1,主要针对1.1...

  • Kafka源码剖析

    Kafka源码剖析 Kafka源码剖析之源码阅读环境搭建 首先下载源码:http://archive.apache...

网友评论

    本文标题:kafka架构师3-图解kafka源码2

    本文链接:https://www.haomeiwen.com/subject/opbcrktx.html