细说 Kafka Partition 分区
作者:iriniland
来源:SegmentFault 思否社区
一、Events, Streams, Topics
二、Partition 分区
Kafka 中 Topic 被分成多个 Partition 分区。
三、Offsets(偏移量)和消息的顺序
四、Partition 为 Kafka 提供了扩展能力
如果把 Topic 的所有 Partition 都放在一个 Broker 上,那么这个 Topic 的可扩展性就大大降低了,会受限于这个 Broker 的 IO 能力。把 Partition 分散开之后,Topic 就可以水平扩展 。 一个 Topic 可以被多个 Consumer 并行消费。如果 Topic 的所有 Partition 都在一个 Broker,那么支持的 Consumer 数量就有限,而分散之后,可以支持更多的 Consumer。 一个 Consumer 可以有多个实例,Partition 分布在多个 Broker 的话,Consumer 的多个实例就可以连接不同的 Broker,大大提升了消息处理能力。可以让一个 Consumer 实例负责一个 Partition,这样消息处理既清晰又高效。
五、Partition 为 Kafka 提供了数据冗余
六、写入 Partition
1. 使用 Partition Key 写入特定 Partition
2. 由 kafka 决定
3. 自定义规则
七、读取 Partition
评论