apache-kafka - 如何在分布式模式下运行 Kafka-connect-replicator?
问题描述
我想使用 confluent 的复制器将数据从一个系统复制到另一个系统。我正在使用两个 Ubuntu 18.04 系统,其中一个用作源,另一个用作目标。
我尝试在分布式模式下运行 kafka-connect-replicator,我更改了以下配置:
- 在 confluent/etc/kafka/server.properties 我做了以下更改
SOURCE
> advertised.listeners=PLAINTEXT://source.ip:9092
DESTINATION
> advertised.listeners=PLAINTEXT://destination.ip:9092
- 在 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
- 在 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 进行消费,但没有主题可供消费。
解决方案
目前尚不清楚您遇到了什么错误,但有一些注释。
connect-distributed
只需要一个属性文件,而不是两个。您将属性以 JSON 格式 HTTP 发布到连接集群,而不是在集群启动期间加载属性文件。快速入门文件旨在用于connect-standalone
JSON看起来像
{"name": "your-replicator-name", "config": {
"src.kafka.bootstrap.servers": "...",
...
}
./etc/kafka/connect-distributed.properties
应该是在分布式模式下运行任何 Connect 或 Replicator 集群的起点,尽管在分布式模式下可能有类似的配置replicator-connect-distributed.properties
bootstrap.servers
应该只指向一个集群。源和目的地将在内部src.kafka.bootstrap.servers
和dest.kafka.bootstrap.servers
推荐阅读
- javascript - 仅检测父元素的 onMouseOut
- hbase - HBase 安装后的引导操作
- react-native - Invariant Violation:元素类型无效 React-Native
- validation - 如何在插件配置中添加自定义验证?
- android - 如何将 Kotlin + JNI android 库发布到 Bintray?
- scala - 如何在 Spark 中发送 JSON 响应
- reactjs - 使用子接口作为带有通用接口的道具接口
- sql - 如何使用本地服务器数据库中的 where 条件从链接服务器表中删除数据
- python - 我们如何从其他存储桶(而不是作曲家存储桶)访问任何配置文件
- cocos2d-x - 当设备处于不同位置时,如何将加速度计值标准化为控制器输入?