融合模式注册表持久性

Posted

技术标签:

【中文标题】融合模式注册表持久性【英文标题】:Confluent Schema Registry Persistence 【发布时间】:2017-12-29 17:30:11 【问题描述】:

即使服务器重新启动,我也希望能够保留具有固定 ID 的架构。

是否可以将模式保留在模式注册表中,以便在服务器崩溃后使它们具有相同的 id?

否则,是否可以在模式注册服务器启动时硬编码具有固定 id 的模式?

【问题讨论】:

【参考方案1】:

这就是模式注册的目的:一个模式有一个固定的 id。 SchemaRegistry 实际上并没有在磁盘上存储任何东西。它利用 kafka 将所有信息存储在压缩主题中(在代理上,默认为 _schemas)。

因此,只要您注册了一个架构,无论何时您请求相同的架构,您都会得到相同的 id,即使在崩溃/重启后也是如此

【讨论】:

但是即使所有的 kafka 服务器都关闭了,我也希望能够保留它。 您的 kafka 服务器是冗余的 - 如果一个崩溃或关闭,它仍然可以工作。如果您的所有服务器都关闭了,当它们再次在线时,它将使用相同的 id 重新工作。如果要迁移集群,则必须将 _schemas 主题中的内容复制到新服务器-我不确定是否有可用的工具(明确地用于模式注册表),您可能需要寻求融合支持如果是你的情况。 如果 kafka 集群完全宕机,您将丢失所有模式。因此,在模式版本完全按照最初定义的方式恢复之前,无法使用 Avro 数据。您可以使用控制台消费者将 _schemas 主题备份到文件中,因为它们只是纯文本 JSON 消息,然后控制台生产者恢复到新的集群/主题

以上是关于融合模式注册表持久性的主要内容,如果未能解决你的问题,请参考以下文章

使用带有kafka引擎的clickhouse进行融合模式注册表身份验证

将 AWS 粘合模式注册表与融合的 SerDe 客户端一起使用

在 databricks 中使用具有基本身份验证的融合 kafka-schema-registry-client 和托管融合模式注册表

有没有办法将融合模式注册表与 kafka-node 模块一起使用?

通过 kafka-avro-console-producer 和融合模式注册表使用 RecordNameStrategy

重启后Spring没有将tomcat持久会话恢复到会话注册表?