首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么使用架构注册表?

为什么使用架构注册表?
EN

Stack Overflow用户
提问于 2022-07-21 17:05:05
回答 1查看 160关注 0票数 1

我刚开始使用Kafka,我使用协议缓冲区作为消息格式,我只是学习模式注册。

为了给出一些上下文,我们是一个拥有十几个we服务的小组,我们使用Kafka在它们之间进行通信,并将所有模式和读/写模型存储在一个库中,这个库随后由每个服务导入。通过这种方式,他们知道序列化/反序列化消息。

但是现在模式注册表起作用了。为什么要用它?现在,我的基础设施变得更加复杂,而且每次更改模式时都需要更新它,我还需要在每个服务中定义读/写模型,就像现在使用库一样。

因此,从我的角度来看,我只看到了缺点,主要是使事情复杂化,所以为什么要使用模式注册中心呢?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2022-07-21 18:07:37

模式注册中心确保您的消息不会偏离公共基础兼容性保证(模式的第一个版本)。

例如,您有一个描述像{"first_name": "Jane", "last_name": "Doe"}这样的事件的模式,但是后来决定名称实际上可以有两个以上的部分,因此您将转移到一个可以支持{"name": "Jane P. Doe"}的架构.您仍然需要一种使用first_namelast_name字段反序列化旧数据的方法,以便迁移到只有name的新模式。因此,消费者将需要两种模式。注册表将保存它并在生产者的每个有效负载中编码架构ID。毕竟,带有两个名称字段的初始事件对只有name的“未来”模式一无所知。

您说您的模型在跨服务的库中共享。那么,您可能有一些回归测试和发布周期来在服务之间发布这些?注册中心将允许您集中该逻辑。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73070141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档