kafka源码图
2024-01-30 15:53:03 0 举报
kafka源码图
作者其他创作
大纲/内容
等待确认topic元数据是否缓存
BufferPool
Deque
availableMemory = 32mb - 16kb * 3
batch
poll
Partitioner将消息路由到分区
SelectionKey
发送消息
send()
broker id
TopicPartition
MemoryRecords
wait(60s)
返回阻塞等待的时间
SocketChannel
Broker是否已经有连接
不关注OP_CONNECH和OP_READ
attach
KafkaChannel
NetworkClient
主线程
write
消息写入内存缓冲
Kafka Thread
finishConnect
ByteBuffer
发送请求数据过去
是
Broker是否可以建立连接
inFlightRequests发送后没有收到响应的请求
唤醒
哪些Browker可以发送数据
封装请求发送到Broker
Metadata(负责管理元数据)
更新触发拉取标识位
Selector
发起连接请求
RecordAccnmulator(内存缓冲区)
拉取成功notifyAll()唤醒主线程
Broker的连接状态更新为CONNECTED
TCP三次握手完成连接的建立
SenderRunnable
List<ClientRequest>
调用write()将ClientRequest的数据写进去
Broker
否
尝试跟Broker建立连接
是否可以写数据
Kafka Broker
监听OP_WRITE事件
select
更新元数据
Kafka Threadkafka-producer-network-thread
TrasnportLayer
拉取元数据
0 条评论
下一页