无法将容器中的Kafka生产者的消息镜像给消费者

时间:2019-02-13 21:00:17

标签: docker apache-kafka mirroring

我正在尝试将ec2实例中容器中的提供者的kafka主题镜像到使用者,并且消息未通过。我怀疑我正在使用.properties配置搞砸了,因为这是我第一次使用MirrorMaker。我也可能一路上都指向错误的端口。

可能的提供者代理在ec2实例中的centOS容器中运行。该提供程序正在通过自定义配置的jdbc源连接器从远程MySQL服务器接收数据,该连接器连接到名为mysql-jdbc-events的主题。提供者已成功接收消息。

可能的使用者当前在主机ec2实例上,尽管一旦成功测试,它将改变。我将主机的端口12181映射到了容器的端口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"

consumer.properties:

# 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

producer.properties:

# 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.的警告,但我在SO的其他地方读到了可以忽略的内容。

在消费者上我没有收到任何有关该主题的消息,但是在生产者上该主题中有消息。

如果有更多信息会有所帮助,请告诉我。

我也不喜欢这种配置-如果有一种更简单的方式将jdbc保留在容器中并将消息转发到容器外部的kafka实例,那也很好。

0 个答案:

没有答案
相关问题