架构注册表只读副本

问题描述

我们有2个不同的数据中心(DC-A和DC-B),它们之间没有连接。实际上,仅允许从DC-A到DC-B的入站流量。我们在DC-A中设置了架构注册表,我们希望在DC-B中运行一个副本。

有哪些选择?我可以在DC-B中以只读模式设置新实例,并可以从DC-A复制架构主题(因为允许入站复制)吗?我们永远不会在DC-B中创建新的架构,我们所需要的只是访问DC-A中的架构。

谢谢!

解决方法

这应该是可能的,尽管可能不是首选设置。如果我理解正确,则您有两个DC,而DC-B之外没有任何连接,从而允许来自DC-A的入站流量。您在DC-B中有一个Kafka集群吗?我假设您愿意,因为您谈到了复制。

如果是这样,您可以有两个“单独的”模式注册表,但其中一个本质上是DC-B中的副本。我还没有尝试过,但是它应该可以工作,并且可以使用Docker轻松测试。

请参阅此架构图以了解其工作方式: architecture diagram

将针对Kafka A正常设置主要模式注册表。您将使用复制器(Confluent Replicator,MirrorMaker等)将_schemas主题复制到KafkaB。请注意,建议您使用在DC B中运行复制器,但是听起来这在您的网络设置中是不可能的。

然后,您将设置一个针对Kafka B运行的第二个架构注册表,该架构注册表将从Kafka B上的_schemas主题读取。然后,您可以将DC B中的架构注册表设置为READONLY模式。如果在注册新模式时READONLY模式没有更新,则可以在DC B模式注册表上将master.eligibility设置为false,并且由于与主模式注册表没有任何关系,因此在尝试创建新模式时会出错。

一些资源:

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...