我在分布式模式下设置了Kafka连接集群,我想获得与多个kafka CLUSTERS的连接,而不仅仅是多个broker。目标broker可以在connect-distributed.properties
中使用bootstrap.servers
设置。所以,首先,我从kafka-cluster-A设置broker 1如下:
bootstrap.servers=broker1:9092
当然,效果很好。
然后,我从kafka-cluster-B添加了broker 2,如下所示:
bootstrap.servers=broker1:9092,broker2:9092
所以,这两个代理在不同的集群中。这根本不起作用。没有任何错误,它只是卡住了,并且没有通过REST API创建连接器之类的请求的答案。
如何连接多个Kafka集群?
2条答案
按热度按时间whlutmcx1#
据我所知,你只能将一个Kafka Connect worker连接到一个Kafka集群。
如果你想用Kafka Connect处理不同集群上的数据,请运行多个Kafka Connect工作进程。
sr4lhrrt2#
如果在源群集(而不是目标群集)上运行Connect,则需要执行以下操作:
1.将
bootstrap.servers
设置为www.example.com中的源服务器connect-distributed-worker.properties1.通过Connect REST API启动实际镜像:
到目前为止,最重要的是:
“producer.override.bootstrap.servers”:“localhost:49092”
这实际上导致了源-〉目标复制的工作。我不知道为什么
"target.cluster.bootstrap.servers": "localhost:49092"
不像它应该的那样工作。但是这个解决方案是有效的。没有这个片段,复制将只复制源集群上带有“site 1”前缀的主题,而不对目标做任何事情。这在OSS文档中没有任何记录,我在blog post和Confluent页面“在源群集上运行Replicator”中发现了它
(This解决方案在Apache Kafka Connect 3.2.0和/或
cp-kafka:7.2.1
Docker镜像上测试)