融合架构注册表

时间:2020-05-25 14:45:00

标签: apache-kafka confluent-schema-registry

我正在学习满足所有架构管理需求的Confluent架构注册表。

我不太了解他们的版本控制方法... 有一个subject的概念,我认为它是一个命名空间。据我了解,主题在Schema Registry中必须是唯一的。

然后有一个架构ID,或者只有id,它也是唯一的。

最后还有一个version

以下是文档中的摘录:

version:该主题的架构版本,从1开始 每个主题

id:全局唯一的架构版本ID,在 所有主题中的所有架构

因此,一旦我想修改特定主题下的架构,idversion字段会发生什么? id会改变吗? version会递增吗?

另一句话:

架构发展时,它们仍与同一主题相关联,但获得了新的架构ID和版本

每次更改是否都需要新的id和新的version

1 个答案:

答案 0 :(得分:0)

每个主题都有一个版本列表。如果愿意,可以在源代码中对此进行验证。

如果两个主题共享同一架构,则架构ID为相同,尽管两个不同主题中的版本可能不同。对于这种情况,请参见下面的示例。

每个唯一的架构(由其文本表示法定义)都有一个唯一的ID(可能是增量ID)。它们经过MD5哈希处理或具有唯一性的“指纹”形式,然后在Schema Registry群集之间进行全局比较。这等效于ConcurrentHashMap<String, Schema>,其中键是值Schema对象的哈希值


示例:对主题,版本和架构使用subvs

  1. 创建sub 1 ,使v 1 :s 1
  2. 更新它以创建v 2 :s 2
  3. 采用相同的架构,并使用它创建sub 2

sub 1 :[v 1 :s 1 ,v 2 :s 2 < / sub>]
sub 2 :[v 1 :s 2 ]