我正在学习满足所有架构管理需求的Confluent架构注册表。
我不太了解他们的版本控制方法...
有一个subject
的概念,我认为它是一个命名空间。据我了解,主题在Schema Registry中必须是唯一的。
然后有一个架构ID,或者只有id
,它也是唯一的。
最后还有一个version
。
以下是文档中的摘录:
version
:该主题的架构版本,从1开始 每个主题
id
:全局唯一的架构版本ID,在 所有主题中的所有架构
因此,一旦我想修改特定主题下的架构,id
和version
字段会发生什么? id
会改变吗? version
会递增吗?
另一句话:
架构发展时,它们仍与同一主题相关联,但获得了新的架构ID和版本
每次更改是否都需要新的id
和新的version
?
答案 0 :(得分:0)
每个主题都有一个版本列表。如果愿意,可以在源代码中对此进行验证。
如果两个主题共享同一架构,则架构ID为相同,尽管两个不同主题中的版本可能不同。对于这种情况,请参见下面的示例。
每个唯一的架构(由其文本表示法定义)都有一个唯一的ID(可能是增量ID)。它们经过MD5哈希处理或具有唯一性的“指纹”形式,然后在Schema Registry群集之间进行全局比较。这等效于ConcurrentHashMap<String, Schema>
,其中键是值Schema
对象的哈希值
示例:对主题,版本和架构使用sub
,v
和s
sub 1 :[v 1 :s 1 ,v 2 :s 2 < / sub>]
sub 2 :[v 1 :s 2 ]