One minute
Kafka Producer Proto
Debug
-
参照debug文章在intellij中启动Kafka
-
terminal 发送请求:
bin/kafka-console-producer.sh –broker-list localhost:9092 –topic test
服务端的交互
通过分析发现交互的请求协议如下
ApiVersions Metadata ApiVersions Produce....
细节分析
-
ApiVersions
返回 broker 是否支持client version
-
Metadata
获取broker信息, 以及相应的partition信息(client会选择负载最轻的一个节点broker获取 metadata)
-
ApiVersions
同上
-
Produce 主要的流程
ReplicaManager#appendRecords -> #appendToLocalLog -> Partition#appendRecordsToLeader -> Log#appendAsLeader -> #append -> LogSegment#append -> FileRecords#append -> MemoryRecords#writeFullyTo
faq
- 为什么两次 ApiVersins ?
48 Words
2019-03-03 21:40 +0800