kafka版本:kafka_2.12-2.3.0
网络环境:内网IP:9092 映射到 外网IP:7039
有个重点是我的外网地址是无法在本地解析的,即在本地只能用内网地址访问kafka
我现在想要在内网能用内网地址访问kafka,在外网能用外网地址访问kafka
以下是我失败的尝试:
1、只配置listeners
listeners=PLAINTEXT://内网IP:9092
内网可以访问,外网报错:
ERROR Error when sending message to topic Hello with key: null, value: 3 bytes with error: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)
org.apache.kafka.common.errors.TimeoutException: Topic Hello not present in metadata after 60000 ms.
2、配置了listeners
与advertised.listeners
listeners=PLAINTEXT://内网IP:9092
advertised.listeners=PLAINTEXT://外网IP:7039
内网和外网访问都报错:
WARN [Producer clientId=console-producer] Error while fetching metadata with correlation id 11 : {Hello=LEADER_NOT_AVAILABLE} (org.apache.kafka.clients.NetworkClient)
3、网上找到的一个配置:
listeners=INTERNAL://0.0.0.0:9092,EXTERNAL://0.0.0.0:7039
listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
advertised.listeners=INTERNAL://内网IP:9092,EXTERNAL://外网IP:7039
inter.broker.listener.name=INTERNAL
内网可以访问,外网报错:
ERROR Error when sending message to topic Hello with key: null, value: 3 bytes with error: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)
org.apache.kafka.common.errors.TimeoutException: Topic Hello not present in metadata after 60000 ms.
最后还是通过域名映射来解决这个问题,把内外网端口映射一样,然后配置listeners=PLAINTEXT://hostname:9092,修改内网hosts文件为内网地址,修改外网hosts文件为外网地址,就可以内外网都能访问到了
看看这篇文章能解决你的问题不
https://www.orchome.com/1903
这篇我看过了,但我的内外网端口不同,无法使用hosts配置啊
你的答案