topic 与 broker 之间存在映射关系
kafka中,调用send()函数,发送消息时,没有指定broker,topic 与 broker 之间存在映射关系,映射关系保存在元数据中,由kafka底层去维护。连接池ProducerPool,包含SyncProducer。SyncProducer负责维持 producer与broker的连接。SyncProducer根据metaData中保存的broker信息,建立与相应broker的连接。
kafka中,
调用send()函数,发送消息时,没有指定broker,
topic 与 broker 之间存在映射关系,映射关系保存在元数据中,
由kafka底层去维护。
连接池ProducerPool,包含SyncProducer。
SyncProducer负责维持 producer与broker的连接。
SyncProducer根据metaData中保存的broker信息,建立与相应broker的连接。
代理上线,下线时,Producer不会第一时间获得,
Producer只有调用send()方法时,才会去刷新 metaData。
消息缓存池,RecordAccumulator。
在消息累加器内部,每一个主题的每一个分区TopicPartition对应一个双端队列,队列中的元素都是RecordBatch。
一个分区的消息对应一个RecordBatch。
RecordBatch是同一个主题发送往同一个分区的多条消息组成。RecordBatch的数据结构。
ConcurrentMap<TopicPartition, Deque<RecordBatch>>
key ---TopicPartition
value ---Deque<RecordBatch>
更多推荐
所有评论(0)