Kafka 中topic、Partition以及Broker之间的关系:
一个Topic可以分成多个Partion分布到多个Broker
Topic & Partition & BrokerProducer发送消息到Kafka Cluster
Producer 将需要发送的消息经过Intercepter和Serializer转化为ProducerRecord,再由Partitioner即分区器分配相对应的分区,放入RecordAccumulator即累加器合并为ProducerBatch并放入分区对应的双端队列Deque中等待发送。Sender发送前会再将Partition和ProductBatch关系转化为Broker和ProductBatch关系进行发送,并将请求维护到InFlightRequests中对发送成功的消息进行清空操作。
Topic Partition 和 Consumer 之间的关系
一个 Partition只能被一个Consumer消费,一个Consumer可以消费多个Partition,如果consumer数量大于Partition则有Consumer空闲
网友评论