aws上的服务是有内网ip和外网ip区分的。我们在aws内部环境运行程序需要指定内网ip,在外网访问时需要指定外网ip。但是broker是只能配置一个ip的,我们怎么做呢?
首先要了解一下几个配置:
-
host.name
已弃用。 仅当listeners属性未配置时被使用,已用listeners属性代替。表示broker的hostname -
advertised.host.name
已弃用。仅当advertised.listeners或者listeners属性未配置时被使用。官网建议使用advertised.listeners。该配置的意思是这册到zookeeper上的broker的hostname或ip。是提供给客户端与kafka通信使用的。如果没有设置则使用host.name -
listeners
需要监听的URL和协议,如:PLAINTEXT://myhost:9092,SSL://:9091 CLIENT://0.0.0.0:9092,REPLICATION://localhost:9093。如果未指定该配置,则使用java.net.InetAddres