kafak的主题与分区内容是如何存储的(分区模型)

kafak集群有多个消息代理服务器(broker server)组成,发布到Kafka集群的每条消息都有一个类别,用主题(topic)来表示。

kafak集群为每个主题维护了分布式的分区(partition)日志文件,物理意义上可以把主题看作分区的日志文件(partitioned log)。每个分区都是一个有序的、不可变得记录序列,新的消息会不断追加到提交日志(commit log)。分区中的每条消息都会按照时间顺序分配到一个单调递增的顺序序号,叫作偏移量(offset),这个偏移量能够唯一地位当前分区中的一条消息。

左图,主题有3个分区,每个分区的偏移量都是从0开始,不同分区之间的偏移量都是独立法人,不会互想影响。

右图,发布到kafka主题的每条消息包括键值和时间戳。

 kafka不传统消息系统有更强的顺序性保证,它使用主题的分区作为消息的并行单元。

posted @ 2018-07-25 09:44  璀璨菜菜  阅读(352)  评论(0)    收藏  举报