我正在尝试将advertised.listener配置为从远程主机接收数据。生产者在远程主机上运行,并将数据发送给kafka。卡夫卡在我们的局域网里运行。还有一个端口映射:public_ip:9092-->10.10.128.125:9792。这里,9092是外部端口,映射到9792,后者是kafka broker端口。Bellow是server.properties文件中的配置
listeners=INTERNAL://0.0.0.0:9792,EXTERNAL://0.0.0.0:9092
advertised.listeners=INTERNAL://10.10.128.125:9792,EXTERNAL://external_ip:9092
listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
inter.broker.listener.name=INTERNAL
从kafka发送到远程kafka客户端的元数据包含代理的内部ip和端口,我可以从生产者日志中看到这一点
DEBUG org.apache.kafka.clients.Metadata - [Producer clientId=producer-1] Updated cluster metadata updateVersion 2 to MetadataCache{clusterId='2YXDmEjfR1iP1R1pUDM6qw', nodes={1=10.10.128.125:9792 (id: 1 rack: null)}, partitions=[PartitionMetadata(error=LEADER_NOT_AVAILABLE, partition=Kafka-9, leader=Optional.empty, leaderEpoch=Optional[57], replicas=2, isr=2, offlineReplicas=2)}
08:23:43.835 [kafka-producer-network-thread | producer-1] DEBUG org.apache.kafka.clients.NetworkClient - [Producer clientId=producer-1] Initiating connection to node 10.10.128.125:9792 (id: 1 rack: null) using address /10.10.128.125
因此,生产者通过内部ip和端口从远程主机发送数据。因此,我无法接收数据。为什么即使在配置advertised.listener之后,生产者也会接收带有内部ip和端口的元数据?任何建议都会很有帮助
发布于 2022-03-26 16:21:50
您的bootstrap.servers属性设置为什么?必须将bootstrap.servers设置为代理的外部ip之一:端口
https://stackoverflow.com/questions/71623037
复制相似问题