我试图将一个kafka主题从ec2示例中容器中的提供者镜像到使用者,但是消息没有通过。我怀疑我把事情搞砸了 .properties
配置,因为这是我第一次使用mirrormaker。我可能也弄糟了指向错误的港口在某个地方的方式。
潜在的提供者代理正在ec2示例的centos容器中运行。提供程序正在通过自定义配置的jdbc源连接器接收来自远程mysql服务器的数据,该连接器连接到名为 mysql-jdbc-events
. 提供程序正在成功接收消息。
潜在的使用者目前在主机ec2示例上,不过一旦测试成功,情况就会改变。我将主机的端口12181Map到容器的端口2181(zookeeper正在运行)。我正在从使用者运行mirrormaker命令。
我执行了命令
./kafka-run-class.sh kafka.tools.MirrorMaker --consumer.config /path/to/config/consumer.properties --producer.config /path/to/config/producer.properties --whitelist "mysql-jdbc-events"
消费者属性:
# format: host1:port1,host2:port2 ...
zookeeper.connect=(host ip-address):12181
zookeeper.connection.timeout.ms=10000
bootstrap.servers=localhost:9092
# consumer group id
group.id=mirror_group
生产商属性:
# format: host1:port1,host2:port2 ...
zookeeper.connect=(host ip-address):2181
bootstrap.servers=localhost:9092
# specify the compression codec for all data generated: none, gzip, snappy, lz4, zstd
compression.type=none
我试过了有和没有 zookeeper.connect
参数,因为我发现它是必需的。我还得到了一个警告 WARN The configuration 'zookeeper.connect' was supplied but isn't a known config.
,但我在其他地方读到了,这样就可以忽略这一点。
我没有得到任何消息填充到消费者的主题中,但是在生产者的主题中有消息。
如果更多的信息有帮助,请告诉我。
我也不赞成这种配置——如果有一种更简单的方法将jdbc保存在容器中,并将消息转发到容器外的kafka示例,那也很好。
暂无答案!
目前还没有任何答案,快来回答吧!