添加额外的 Schema Registry 层会影响好处吗?
Adding additional layer of Schema Registry out weights benefits?
当 producing/consumer 消息时,添加模式注册表的附加层(也称为故障点)有什么好处吗?如果服务出现故障,则不会使用或生成消息。使用 Kafka 的系统不会因为不使用 Schema Registry 而减少一个故障点而更不容易出错吗?
模式注册表可以配置为 highly available,因此它不是单点故障。
就是说,如果您想要架构注册表附带的便利性和架构兼容性规则,那么您需要使用它。并非所有连接到 Kafka 集群的客户端都需要使用它,因此您可以在不影响同一集群上的其他客户端的情况下尝试它。
对于 avro 消息使用模式注册表的主要替代方法是将模式添加到消息本身。一些用户可以接受较大的消息大小而不是系统地发展模式。模式注册表是为那些关心这些事情的人准备的。
在您的体系结构中使用模式注册表的一个关键点是确保您的数据管道端到端地工作"even during normal operations"。
也就是说,即使所有系统都已启动且 运行 ("all green, 100% uptime!"),例如,由团队 A
管理的生产者应用程序也可能会更新并开始生成不兼容的数据,从而对由团队 B
和 C
管理的下游消费者造成附带损害,他们没有预料到此更改。
因此,当您决定是否使用架构注册表时,您不应该只问自己有关场景 "when things fail"(这很可能会在某个时候发生,这就是为什么例如 Confluent Schema Registry 支持诸如高可用性设置之类的功能),但也支持数据管道正常工作所需的保证。
If the service ever goes down, then messages won't be consumed or produced.
总的来说,是的。实际上,模式注册表服务的高可用性模式、模式的客户端缓存等功能都有助于最大限度地减少此类损害。
Wouldn't the system using Kafka less prone to errors by not using Schema Registry which gives one less point of failure?
你是对的,一般来说,你希望避免引入一个会成为链中另一个故障点的组件。
也就是说,如果您是生产中的 运行 数据管道——尤其是在较大的组织中——架构注册表还有助于删除 "points of failures",方法是确保写入的数据也可以总是被阅读。有人可能会争辩说,由 "data changes" 引发的故障至少与由一个或多个系统不可用引发的故障一样普遍。
当 producing/consumer 消息时,添加模式注册表的附加层(也称为故障点)有什么好处吗?如果服务出现故障,则不会使用或生成消息。使用 Kafka 的系统不会因为不使用 Schema Registry 而减少一个故障点而更不容易出错吗?
模式注册表可以配置为 highly available,因此它不是单点故障。
就是说,如果您想要架构注册表附带的便利性和架构兼容性规则,那么您需要使用它。并非所有连接到 Kafka 集群的客户端都需要使用它,因此您可以在不影响同一集群上的其他客户端的情况下尝试它。
对于 avro 消息使用模式注册表的主要替代方法是将模式添加到消息本身。一些用户可以接受较大的消息大小而不是系统地发展模式。模式注册表是为那些关心这些事情的人准备的。
在您的体系结构中使用模式注册表的一个关键点是确保您的数据管道端到端地工作"even during normal operations"。
也就是说,即使所有系统都已启动且 运行 ("all green, 100% uptime!"),例如,由团队 A
管理的生产者应用程序也可能会更新并开始生成不兼容的数据,从而对由团队 B
和 C
管理的下游消费者造成附带损害,他们没有预料到此更改。
因此,当您决定是否使用架构注册表时,您不应该只问自己有关场景 "when things fail"(这很可能会在某个时候发生,这就是为什么例如 Confluent Schema Registry 支持诸如高可用性设置之类的功能),但也支持数据管道正常工作所需的保证。
If the service ever goes down, then messages won't be consumed or produced.
总的来说,是的。实际上,模式注册表服务的高可用性模式、模式的客户端缓存等功能都有助于最大限度地减少此类损害。
Wouldn't the system using Kafka less prone to errors by not using Schema Registry which gives one less point of failure?
你是对的,一般来说,你希望避免引入一个会成为链中另一个故障点的组件。
也就是说,如果您是生产中的 运行 数据管道——尤其是在较大的组织中——架构注册表还有助于删除 "points of failures",方法是确保写入的数据也可以总是被阅读。有人可能会争辩说,由 "data changes" 引发的故障至少与由一个或多个系统不可用引发的故障一样普遍。