当前位置: 首页 > 知识库问答 >
问题:

合流架构注册表主机

孔宇
2023-03-14

对于跨网络汇流平台,我们有一个kafka集群在Premise上,另一个在AWS上,其中数据使用mirror Maker从on-prem复制到AWS。这两个集群都独立于它们自己的模式注册表、rest代理和Connect,这两个集群都有不同的生产者和消费者集,并且选择的主题在集群之间被镜像。

部署schema-registry的最佳实践应该是什么?我们是否应该在on-prem和AWS上有一个主服务器(比如on-premise)和其他从服务器?

当主题在集群之间复制并且我们有两个主服务器(aws和onprem)时,我们怀疑schema-registry可能会出现与模式ID有关的问题。

谢谢!

共有1个答案

薛坚
2023-03-14

如果您使用两个不同的主注册表,我发现这将是很难管理的。(关于自我管理的注册表,请参见错误#2)。第二个实例/集群上的master.eligble=false的目的是使所有ID注册事件都有一个单一的真值来源。正如文档所说,两个数据中心中的模式注册表节点都链接到DC A中的主Kafka集群,因此无论如何,您都需要在AWS和onprem之间建立有效的网络链接。

否则,如果您希望环境之间的主题和模式ID完全相同,那么对于多个主控,您将需要镜像模式主题。但是,这主要是用来作为一种备份,您最终会遇到目标区域中任何将模式推到另一个主服务器的生产者的模式ID冲突。因此,第一个关系图只显示远程数据中心中的使用者。
如果不这样做,那么假设您将一个主题从集群a镜像到集群B,并且使用者在设置中使用了注册表B,它将尝试从注册表a(嵌入到消息中)查找一个ID,而该ID不存在,或者是正在读取的主题的不正确ID。

我编写了一个Kafka Connect插件来解决这个问题,方法是在远程主注册表https://github.com/cricket007/schema-registry-transfer-smt中注册一个新的ID,尽管您说您使用的是MirrorMaker,所以您需要将逻辑带到那里,并将其应用到MirrorMaker中的MessageHandler接口

我实际上只使用过一个主机,即on-prem,并且在AWS中,注册表设置有指向on-prem集群设置的Zookeeper连接。

而且我们并不像文件中所说的那样反映所有的事情,只反映特定的主题。使用Replicator而不是MirrorMaker的目的是更好地支持使用者故障转移,而不是简单地“通过网络”获取数据,客户端也更少地依赖于它们运行的位置。

 类似资料:
  • 我正在尝试从模式注册表中检索给定kafka主题的模式主题版本。我可以使用成功发布新版本,但我不确定如何检索版本。我在下面尝试使用curl请求,但结果立即命中-1(空)。 我如何修复这个GET请求,或者更好的是,我应该如何使用模式注册中心来检索一个模式?

  • 我正在使用Avro模式向Kafka主题写入数据。起初,一切正常。在avro文件中添加多一个新字段(scan_app_id)后。我正面临这个错误。 Avro文件:{ “type”:“record”,“name”:“initiate_scan”,“namespace”:“avro”,“doc”:“initiate_scan的avro架构注册表”,“fields”:[{“name”:“app_id”,“

  • 嘿,我想将ConFluent模式注册表与Avro Serializers一起使用:留档现在基本上是说:不要为多个不同的主题使用相同的模式 谁能解释一下原因吗?我重新搜索了源代码,它基本上将模式存储在Kafka主题中,如下所示(topicname,magicbytes,version- 因此,除了冗余之外,我看不到多次使用模式的问题?

  • 我有一个docker容器运行AWS弹性容器服务(Fargate)中的confluentinc/cp模式注册表:5.5.0。只有一个容器正在运行。通过该模式注册表获取当前注册模式的API调用正在工作(例如,

  • 我们正在尝试将NiFi连接到合流Kafka实例,该实例已设置为在以Avro格式发布/使用消息时使用合流模式注册表。 但是,当我们启动NiFi kafka处理器时,我们会遇到以下异常:

  • 我已经在Ubuntu 16.04机器上安装了合流平台,并初步配置了zookeeper、Kafka和ksql,启动了合流平台。我可以看到下面的消息。 现在一切都启动了,当我检查融合平台的状态时,我观察到Schema注册表,连接 我已经检查了schema注册表的日志,找到了下面的日志。