如何解决架构注册表只读副本
我们有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轻松测试。
将针对Kafka A正常设置主要模式注册表。您将使用复制器(Confluent Replicator,MirrorMaker等)将_schemas
主题复制到KafkaB。请注意,建议您使用在DC B中运行复制器,但是听起来这在您的网络设置中是不可能的。
然后,您将设置一个针对Kafka B运行的第二个架构注册表,该架构注册表将从Kafka B上的_schemas
主题读取。然后,您可以将DC B中的架构注册表设置为READONLY
模式。如果在注册新模式时READONLY模式没有更新,则可以在DC B模式注册表上将master.eligibility
设置为false,并且由于与主模式注册表没有任何关系,因此在尝试创建新模式时会出错。
一些资源:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。