kafka 集群映射端口到外网,外网无法生产消息

有3台kafka

ip分别是内网ip

192.168.2.21  9092

192.168.2.22  9092

192.168.2.23  9092

另有一台同时接通了内网和互联网的机器(内网ip 192.168.2.13,外网ip 172.50.63.1),

现在用这台机器做了端口映射,用的rinetd

0.0.0.0  9092  192.168.2.21  9092

0.0.0.0  9093  192.168.2.22  9092

0.0.0.0  9094  192.168.2.23  9092

然后在自己开发电脑上用java代码生产消息 topic=ffff

props.put("bootstrap.servers","172.50.63.1:9092");

会产生如下报错

java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.TimeoutException: Batch containing1record(s) expired duetotimeoutwhilerequesting metadatafrombrokersforffff-0atorg.apache.kafka.clients.producer.internals.FutureRecordMetadata.valueOrError(FutureRecordMetadata.java:65)atorg.apache.kafka.clients.producer.internals.FutureRecordMetadata.get(FutureRecordMetadata.java:52)atorg.apache.kafka.clients.producer.internals.FutureRecordMetadata.get(FutureRecordMetadata.java:25)atProducer.run(Producer.java:140)Causedby: org.apache.kafka.common.errors.TimeoutException: Batch containing1record(s) expired duetotimeoutwhilerequesting metadatafrombrokersforffff-0

这是我的kafka配置

listeners=PLAINTEXT://0.0.0.0:9092advertised.listeners=PLAINTEXT://192.168.2.13:9092

现在的疑问是

这个配置应该写什么?才能让外网能够正常生产

advertised.listeners应该写互联网ip 172.50.63.1 还是做映射的那台内网ip 192.168.2.13

你可能感兴趣的:(kafka 集群映射端口到外网,外网无法生产消息)