Docker Can';t将容器中卡夫卡制作人的消息镜像到消费者

Docker Can';t将容器中卡夫卡制作人的消息镜像到消费者,docker,apache-kafka,mirroring,Docker,Apache Kafka,Mirroring,我试图将一个kafka主题从ec2实例中容器中的提供者镜像到消费者,但消息没有通过。我怀疑我把.properties配置搞砸了,因为这是我第一次使用MirrorMaker。我也可能在一路上指向了错误的端口 潜在的提供者代理正在ec2实例的centOS容器中运行。提供程序正在通过自定义配置的jdbc源连接器接收来自远程MySQL服务器的数据,该连接器的主题为MySQL jdbc events。提供程序正在成功接收消息 潜在使用者当前位于主机ec2实例上,但一旦成功测试,情况将发生变化。我将主机的端

我试图将一个kafka主题从ec2实例中容器中的提供者镜像到消费者,但消息没有通过。我怀疑我把
.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"
消费者权益:

# 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
生产商。物业:

# 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
我在producer配置中使用和不使用
zookeeper.connect
参数都进行了尝试,因为我发现有必要使用这个参数。我还收到了一个警告,大意是“警告”提供了配置“zookeeper.connect”,但它不是已知的配置。,但我在其他地方阅读了,因此可以忽略它

我没有在消费者处收到任何填充到主题的消息,但在生产者处的主题中有消息

如果有更多的信息会有帮助,请让我知道


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

你能在这里阐明你想要的拓扑吗?您在Kafka Connect中有一个JDBC源连接器,并且希望将数据写入Kafka群集并将其复制到其他群集,对吗?@RobinMoffatt是的,没错。现在,拓扑结构恰好是两个集群都只包含一个代理,并且它们位于同一个“盒子”内,但这只是为了测试。您能否进一步解释一下“如果有更简单的方法将jdbc保存在容器中,并将消息转发到容器外的kafka实例”?我仍然不清楚容器有什么相关性,也不清楚JDBC?如果你的问题只是关于mirror maker,那么它只是一些主题(不管它们是如何填充的)。如果您的问题是将数据从JDBC连接器传输到其他地方,请澄清这一点。请表明您可以使用完全相同的
consumer.config
从mirror maker运行的位置单独消费。如果您没有使用Kafka 0.8,那么就不应该使用Zookeeper连接字符串。另外,如果您已经在容器中使用JDBC连接器,那么您可以使用Replicator进行试用,至少在集群之间复制主题(注意:Github上也有使用Connect的免费替代品)@RobinMoffatt如果我不清楚,我很抱歉。容器是相关的,因为我们使用docker repo来标准化和自动化MySQL-->Kafka提要的安装和配置。我希望JDBC连接器留在容器中,因为安装/配置连接器是留给docker的一大部分。JDBC与我目前尝试做的事情的唯一关联是解释为什么我的起点在容器中。容器是相关的,因为我认为它会影响MirrorMaker的配置方式。你能在这里阐明你想要的拓扑结构吗?您在Kafka Connect中有一个JDBC源连接器,并且希望将数据写入Kafka群集并将其复制到其他群集,对吗?@RobinMoffatt是的,没错。现在,拓扑结构恰好是两个集群都只包含一个代理,并且它们位于同一个“盒子”内,但这只是为了测试。您能否进一步解释一下“如果有更简单的方法将jdbc保存在容器中,并将消息转发到容器外的kafka实例”?我仍然不清楚容器有什么相关性,也不清楚JDBC?如果你的问题只是关于mirror maker,那么它只是一些主题(不管它们是如何填充的)。如果您的问题是将数据从JDBC连接器传输到其他地方,请澄清这一点。请表明您可以使用完全相同的
consumer.config
从mirror maker运行的位置单独消费。如果您没有使用Kafka 0.8,那么就不应该使用Zookeeper连接字符串。另外,如果您已经在容器中使用JDBC连接器,那么您可以使用Replicator进行试用,至少在集群之间复制主题(注意:Github上也有使用Connect的免费替代品)@RobinMoffatt如果我不清楚,我很抱歉。容器是相关的,因为我们使用docker repo来标准化和自动化MySQL-->Kafka提要的安装和配置。我希望JDBC连接器留在容器中,因为安装/配置连接器是留给docker的一大部分。JDBC与我目前尝试做的事情的唯一关联是解释为什么我的起点在容器中。容器是相关的,因为我认为它会影响MirrorMaker的配置方式。