Kafka从多个独立代理接收



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

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

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

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

最终,在每个源数据库旁边运行Broker是相当复杂的。根据您的描述,听起来您在不同的数据库之间有一些连接,但它是有限的,并且可能容易断开连接。你考虑过其他的设计吗?
  • DB复制:使用数据库供应商的本地异步复制将数据复制到单个目标数据库。远程区域始终是只读的,复制不应该降低源DB的速度(当然,这取决于DB)。异步数据库复制通常可以处理一些网络断开和延迟。
  • Local Debezium:在每个DB旁边运行一个Debezium进程,并将所有事件保存到一个文件中。将文件复制到某个中央服务器或云存储服务(如S3)。最后,将这些文件导入中央DB。这将完全跳过Kafka。

您可以将Connect属性文件指向任何引导程序。您需要的服务器

属性本身必须是单个"集群"的一部分。(即使是单个broker),这将由broker zookeeper决定。连接属性

相关内容

  • 没有找到相关文章

最新更新