Kafka 中的 __consumer_offsets 和 _schema 主题有啥用?

Posted

技术标签:

【中文标题】Kafka 中的 __consumer_offsets 和 _schema 主题有啥用?【英文标题】:What is the use of __consumer_offsets and _schema topics in Kafka?Kafka 中的 __consumer_offsets 和 _schema 主题有什么用? 【发布时间】:2017-01-24 13:35:14 【问题描述】:

搭建Kafka Broker集群并创建几个topic后,我们发现Kafka自动创建了以下两个topic:

    __consumer_offsets _schema

这些主题的重要性和用途是什么?

【问题讨论】:

【参考方案1】:

__consumer_offsets 用于存储有关每个主题的已提交偏移量的信息:每组消费者的分区(groupID)。 它是压缩主题,因此数据将被定期压缩,并且只有最新的偏移量信息可用。

_schema - 不是默认的 kafka 主题(至少在 kafka 8,9 中)。它是由 Confluent 添加的。查看更多:Confluent Schema Registry - github.com/confluentinc/schema-registry(感谢@serejja)

【讨论】:

当我计划在不停机的情况下将我的 kafka 迁移到新服务器时,我是否还需要增加 __consumer_offsets 这个主题的复制因子并重新分配?【参考方案2】:

__consumer_offsets:每个消费者组都维护其每个主题分区的偏移量。由于v0.9,每个消费者组的提交偏移信息都存储在这个内部主题中(在v0.9之前,这个信息存储在Zookeeper上)。当偏移管理器收到OffsetCommitRequest 时,它会将请求附加到名为__consumer_offsets 的特殊压缩Kafka 主题中。最后,偏移量管理器将向消费者发送一个成功的偏移量提交响应,只有当偏移量主题的所有副本都收到偏移量时。

_schemas:这是 Schema Registry 使用的内部主题,它是 Avro 模式的分布式存储层。所有与模式、主题(及其相应版本)、元数据和兼容性配置相关的信息都附加到该主题中。模式注册表反过来产生(例如,当在主题下注册新模式时)并使用来自该主题的数据。

【讨论】:

以上是关于Kafka 中的 __consumer_offsets 和 _schema 主题有啥用?的主要内容,如果未能解决你的问题,请参考以下文章

深入理解Kafka必知必会

大数据技术之_10_Kafka学习_Kafka概述+Kafka集群部署+Kafka工作流程分析+Kafka API实战+Kafka Producer拦截器+Kafka Streams

Kafka 如何读取指定topic中的offset -------------用来验证分区是不是均衡!!!(__consumer_offsets)(注,本文尚在测试验证阶段,,,后续一俩天会追加修

Flink最后一站___Flink数据写入Kafka+从Kafka存入Mysql

Flink最后一站___Flink数据写入Kafka+从Kafka存入Mysql

Spark编程--Kafka安装与配置 (Kafka版本 kafka_2.11_2.2.1)