首页 > 解决方案 > 如何在分布式模式下运行 Kafka-connect-replicator?

问题描述

我想使用 confluent 的复制器将数据从一个系统复制到另一个系统。我正在使用两个 Ubuntu 18.04 系统,其中一个用作源,另一个用作目标。

我尝试在分布式模式下运行 kafka-connect-replicator,我更改了以下配置:

  1. 在 confluent/etc/kafka/server.properties 我做了以下更改
SOURCE
> advertised.listeners=PLAINTEXT://source.ip:9092
DESTINATION
> advertised.listeners=PLAINTEXT://destination.ip:9092

  1. 在 confluent/etc/kafka-connect-replicator/replicator.connect.distributed.properties 我做了以下更改

 - group.id=connect-replicator

group.id is same on source and destination system

SOURCE

 - bootstrap.servers=destination.ip:9092, source.ip:9092

DESTINATION

 - bootstrap.servers=destination.ip:9092, source.ip:9092

  1. 在 confluent/etc/kafka-connect-replicator/quickstart-replicator.properties 我更改了以下配置

资源

name=replicator-source
connector.class=io.confluent.connect.replicator.ReplicatorSourceConnector
# source cluster connection info
src.kafka.bootstrap.servers=source.ip:9092
# Set to use direct connection to Zookeeper by Replicator on the source
src.zookeeper.connect=localhost:2181

# destination cluster connection info
dest.kafka.bootstrap.servers=destination.ip:9092
# Set to use direct connection to Zookeeper by Replicator on the destination
dest.zookeeper.connect=destination.ip:2181
# configure topics to replicate
topic.whitelist= test-topic
topic.rename.format=${topic}.replica

目的地

name=replicator-source
connector.class=io.confluent.connect.replicator.ReplicatorSourceConnector
# source cluster connection info
src.kafka.bootstrap.servers=source.ip:9092
# Set to use direct connection to Zookeeper by Replicator on the source
src.zookeeper.connect=source.ip:2181

# destination cluster connection info
dest.kafka.bootstrap.servers=destination.ip:9092
# Set to use direct connection to Zookeeper by Replicator on the destination
dest.zookeeper.connect=destination.ip:2181
# configure topics to replicate
topic.whitelist= test-topic
topic.rename.format=${topic}.replica

然后我在源系统中创建主题并使用以下命令启动连接器

PATH_TO_CONFLUENT> sudo ./bin/connect-distributed ./etc/kafka-connect-replicator/replicator-connect-distributed.properties ./etc/kafka-connect-replicator/quickstart-replicator.properties

在此之后,我从源系统生成主题中的数据,并尝试在目标系统中使用主题名称 {topic}.replica 进行消费,但没有主题可供消费。

标签: apache-kafkaapache-kafka-connect

解决方案


目前尚不清楚您遇到了什么错误,但有一些注释。

  1. connect-distributed只需要一个属性文件,而不是两个。您将属性以 JSON 格式 HTTP 发布到连接集群,而不是在集群启动期间加载属性文件。快速入门文件旨在用于connect-standalone

JSON看起来像

{"name": "your-replicator-name", "config": {
  "src.kafka.bootstrap.servers": "...",
  ...
}
  1. ./etc/kafka/connect-distributed.properties应该是在分布式模式下运行任何 Connect 或 Replicator 集群的起点,尽管在分布式模式下可能有类似的配置replicator-connect-distributed.properties

  2. bootstrap.servers应该只指向一个集群。源和目的地将在内部src.kafka.bootstrap.serversdest.kafka.bootstrap.servers


推荐阅读