kafka主题和分区的概念TopicTopic-topic是Kafka中的一个逻辑概念,Kafka通过topic对消息进行分类。订阅该主题的消费者将消费不同的主题。但有一个问题。如果这个topic的消息很多,保存起来需要几个T,因为消息会保存在日志文件中。为了解决文件过大的问题,Kafka提出了Partition分区的概念。2.PartitionPartition将消息按分区存储在主题中。这样做有几个好处:分区存储可以解决系统中存储的文件过大的问题。提供读写吞吐量:可以同时对多个分区进行读写。创建多分区主题:./kafka-topics.sh--create--zookeeper127.0.0.1:9093--replicationfactor1--partitions2--topictest23.kafka消息日志文件中保存的内容为00000。log:这个文件中保存的是消息_consumer_offsets-49:Kafka在内部创建了_consumer_offsets主题,包含50个分区。该主题用于存储消费者消费的主题的偏移量。因为每个consumer都会自己维护消费topic的offset,也就是说每个consumer会独立的将消费topic的offset上报给Kafka中的默认topic:consumer_offsets。所以,为了提高这个topic的并发度,Kafka默认设置了50个partition。提交到哪个partition:通过hash函数:hash(consumerGroupld)%_consumer__offsetstopicpartitionnumber这个topic提交的内容是:key是consumerGroupld+topic+partitionnumber,value是当前offset值文件中保存的消息,默认为7天。消息将在7天后删除。了解更多java培训课程相关技术知识,欢迎关注小编!
