kafka配置内外网分流

问题描述:

  kafka服务处在内网, 客户端在外网, 客户端通过网闸端口映射连接内网的kafka,  这种情况下实际无法连接上kafka。  

  客户端第一次通过外网ip端口连接上kafka,会查询broker信息,kafka会返回内网的ip信息, 这样客户端在第二次重新连接broker时就会连接失败。

 

修复方法1:域名解析,例如客户端和服务端都域名kafka_1, 服务端kafka_1对应内网ip, 客户端kafka_1对应外网ip, kafka配置listeners=PLAINTEXT://kafka_1:9092

修复方法2:kafka配置内外网分流

骤修改kakfa配置文件config/server.properties

1、    修改listeners,这里配置本机kafka的监听地址

    listeners=INSIDE://内网ip:9091,OUTSIDE://外网ip:9092

 

修改前

listeners= PLAINTEXT://10.12.56.22:9092

修改后

listeners= INSIDE://10.12.56.22:9091, OUTSIDE://163.177.247.244:9092

2、修改advertised.listeners, 这里的配置是用于告知其他broker和客户端本机的监听地址,

advertised.listeners和listeners保持一致。

advertised.listeners=INSIDE://内网ip:9091,OUTSIDE://外网ip:9092

修改前

advertised.listeners = PLAINTEXT://10.12.56.22:9092

修改后

advertised.listeners= INSIDE://10.12.56.22:9091, OUTSIDE://163.177.247.244:9092

 

3、新增listener.security.protocol.map,这是监听器名称和安全协议之间的映射关系集合,PLAINTEXT表示明文。 

修改后

listener.security.protocol.map=INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT

 

4、新增inter.broker.listener.name配置,注释掉security.inter.broker.protocol配置,二者不能同时配置。inter.broker.listener.name用于broker之间通信的listener名称。

修改前

security.inter.broker.protocol=PLAINTEXT

修改后

#security.inter.broker.protocol=PLAINTEXT

inter.broker.listener.name=INSIDE

完成上述修改后,重启kafka, 即可
posted @ 2023-08-31 17:09  ho966  阅读(305)  评论(0编辑  收藏  举报