__consumer_offsets 和 _schema 主题在 Kafka 中有什么用?

What is the use of __consumer_offsets and _schema topics in Kafka?

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

  1. __consumer_offsets
  2. _schema

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

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

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

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

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