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

来自多个独立经纪人的Kafka接收器

别浩漫
2023-03-14

我想将多个数据库的更改聚合到一个数据库中,所以我想在每个数据库旁边运行一个Debezium连接器和一个Kafka服务器/代理,并使用Kafka接收器连接器从所有这些Kafka中消费写入一个数据库。

问题是,我是否可以使用单个 Kafka 接收器连接器实例同时使用来自多个独立(不是集群)的 Kafka 代理。

共有2个答案

何高旻
2023-03-14

您可以将连接属性文件指向您想要的任何bootstrap.servers

属性本身必须是单个“集群”的一部分(即使是单个代理),这将由代理 zookeeper.connect 属性确定

翟英达
2023-03-14

在每个数据库旁边运行一个Kafka代理听起来非常复杂。据我所知,似乎不支持连接到不同Kafka代理集群的单个Kafka连接工作器。

如果您沿着这条路走下去,使用Kafka MirrorMaker之类的工具将您的本地主题复制到一个主Kafka集群,然后使用Kafka Connect Sink从一个worker读取所有复制的主题并写入中央数据库,这可能更有意义。

最终,在每个源数据库旁边运行Broker非常复杂。根据您的描述,听起来您在不同的数据库之间有一些连接,但它是有限的,并且可能容易断开连接。您是否考虑过替代设计:

  • 数据库复制:使用您的数据库供应商的本机异步复制将数据复制到单个目标数据库。远程区域始终是只读的,复制不应该减慢您的源数据库(当然取决于数据库)。异步数据库复制通常可以处理一些网络断开和延迟。
  • 本地Debezium:在每个DB旁边使用Debezium运行一个进程,并将所有事件保存到一个文件中。将文件复制到某个中央服务器或S3等云存储服务。最后,将这些文件导入中央数据库。这基本上会完全跳过Kafka。
 类似资料:
  • 在Flink中,我执行以下代码: 我推出3次同样的工作。 如果我用一个代理执行这段代码,它工作得很好,但是用3个broke(在3个不同的机器上)只读取一个分区。 null

  • Kafka初学者和融合包。我想启动多个代理,以便了解主题。可以通过此设置完成- 此设置可以在服务器配置文件中定义,也可以在脚本中定义。 但是我该如何运行它们呢?。如果我只是向引导服务器添加多个endpoint,就会出现以下错误: Java . lang . illegalargumentexception:要求失败:每个侦听器必须有不同的名称,listeners: PLAINTEXT://:909

  • 我是Kafka的新手,动物园管理员和Storm。我我们的环境,我们有一个Kafka代理连接到多个动物园管理员。让生产者将消息发送到特定主题并在一个代理上将分区到多个动物园管理员与多个代理分配给多个动物园管理员相比是否有优势?

  • 我正在考虑创建一个独立的Kafka生产者,它作为守护进程运行,通过套接字接收消息,并将其可靠地发送给Kafka。 但是,我决不能是第一个想到这个想法的人。这样做的目的是避免使用PHP或Node编写Kafka生成器,而只是通过套接字将消息从这些语言传递到独立的守护进程,这些语言负责传递,而主应用程序则一直在做自己的事情。 此守护进程应负责在发生中断时进行重试传递,并充当服务器上运行的所有程序的传递点

  • 我正在尝试从kafka中的主题将数据插入postgres数据库。我正在使用以下命令加载 sink-quick start-MySQL . properties如下 我得到的错误是 Postgres jar文件已经在文件夹中。有人能提出建议吗?

  • 我有一组Kafka代理实例作为集群运行。我有一个客户正在生产数据给Kafka: 当我们使用tcpdump进行监控时,我可以看到只有到broker1和broker2的连接被建立,而对于broker3,没有来自我的生产者的连接。我有一个只有一个分区的单一主题。 我的问题是: > 为什么在我的情况下,我无法连接到broker3?或者至少我的网络监控没有显示我的制作人与broker3建立了连接? 如果我能