kafka主题和分区的概念

  1. 主题Topic
    主题-topic在kafka中是⼀个逻辑的概念,kafka通过topic将音讯进⾏分类。不同的topic会被订阅该topic的消费者生产。
    然而有⼀个问题,如果说这个topic中的音讯⾮常⾮常多,多到须要⼏T来存,因为音讯是会被保留到log⽇志⽂件中的。为了解决这个⽂件过⼤的问题,kafka提出了Partition分区的概念。

2.分区Partition

通过partition将⼀个topic中的音讯分区来存储。这样的益处有多个:

分区存储,能够解决统-存储文件过大的问题。
提供了读写的吞吐量:读和写能够同时在多个分区中进行。

创立多分区的主题:

./kafka-topics.sh --create --zookeeper 127.0.0.1:9093 --replicationfactor 1 --partitions 2 --topic test2

3.kafka中音讯⽇志⽂件中保留的内容

00000.log: 这个文件中保留的就是音讯
_consumer_offsets-49:

kafka外部本人创立了_consumer_offsets主题蕴含了50个分区。这个主题用来寄存消费者生产某个主题的偏移量。因为每个消费者都会本人保护着生产的主题的偏移量,也就是说每个消费者会把生产的主题的偏移量自主,上报给Kafka中的默认主题:
consumer_ offsets。因而kafka为了晋升这个主题的并发性,默认设置了50个分区。

提交到哪个分区:通过hash函数: hash(consumerGroupld) %_ consumer_ _offsets主题的分区数
提交到该主题中的内容是: key是consumerGroupld+topic+分区号, value就是以后offset的值
文件中保留的音讯,默认保留7天。七天到后音讯会被删除。

理解更多java培训课程相干技术常识欢送关注小编!