详解kafka消息分区机制原理

背景

kafka如何支撑海量消息的集中写入?

答案就是消息分区。

核心思想是:负载均衡,采用合适的分区策略把消息写到不同的broker上的分区中;

其它的产品中有类似的思想。

比如monogodb, es 里面叫做 shard;   hbase叫region,  cassdra叫vnode;

消息的三层结构

如下图:

即  topic -> partition -> message ; 


详解kafka消息分区机制原理_第1张图片

topic是逻辑上的消息容器;

partition实际承载消息,分布在不同的kafka的broke上;

message即具体的消息。

分区策略

round-robin轮询

详解kafka消息分区机制原理_第2张图片

消息按照分区挨个的写。

randomness随机分区

随机的找一个分区写入,代码如下:

List<

你可能感兴趣的:(详解kafka消息分区机制原理)