有3台kafka集群broker,以下ip地址均属杜撰,仅仅做举例用
| hostname | 内网ip | 外网Ip |
|---|---|---|
| kafka1 | 192.168.1.201 | 139.28.39.101 |
| kafka2 | 192.168.1.202 | 139.28.39.102 |
| kafka3 | 192.168.1.203 | 139.28.39.103 |
方法1 配置hosts方式
本来kafka集群配置的listener参数如下:
# The address the socket server listens on. It will get the value returned from
# java.net.InetAddress.getCanonicalHostName() if not configured.
# FORMAT:
# listeners = listener_name://host_name:port
# EXAMPLE:
# listeners = PLAINTEXT://your.host.name:9092
listeners=PLAINTEXT://192.168.1.201:9092
这样内网能正常访问kafka集群,外网访问不了!
换成外网IP,kafka集群配置的listener参数如下:
# The address the socket server listens on. It will get the value returned from
# java.net.InetAddress.getCanonicalHostName() if not configured.
# FORMAT:
# listeners = listener_name://host_name:port
# EXAMPLE:
# listeners = PLAINTEXT://your.host.name:9092
listeners=PLAINTEXT://139.28.39.101:9092
这样外网能访问,但是内网也走外网访问。
注意事项:配置监听外网ip方式实现内外网都访问,有安全隐患,并且kafka集群之间节点的连接会走外网, 网络抖动,导致服务出现不可用。
怎样才能让内网访问走内网,外网访问走外网呢?
采取如下解决方案,成功处理掉问题!!!
注释如上listener配置,然后打开下面的advertised listener配置:
# The address the socket server listens on. It will get the value returned from
# java.net.InetAddress.getCanonicalHostName() if not configured.
# FORMAT:
# listeners = listener_name://host_name:port
# EXAMPLE:
# listeners = PLAINTEXT://your.host.name:9092
#listeners=PLAINTEXT://192.168.1.201:9092
# Hostname and port the broker will advertise to producers and consumers. If not set,
# it uses the value for "listeners" if configured. Otherwise, it will us

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



