卡夫卡集群常见的跨网络访问详解

  

场景说明:
当客户端与服务端在不同区域(跨防火墙,地址均做了映射)时,客户端访问卡夫卡时会出现获取不到代理的问题,但是网络之间是互通的。但在跨防火墙下,客户请求饲养员的时候,饲养员返回给客户的代理IP是卡夫卡的实际地址,而不是映射地址,因此客户会访问失败。
卡夫卡集群常见的跨网络访问详解

  

解决方式一,
1,配置文件:听众=明文://主机名:9092
服务端主机:内网地址主机名
3,客户端主机:外网地址主机名

  

注意事项:不安全,且配置复杂不统一

  

解决方式2:(案例)
1,注释:
<代码>听众=明文://192.168.111.134:9092

  

添加:   

 <代码> inter.broker.protocol.version=1.0
  log.message.format.version=1.0
  advertised.listeners=内部://192.168.111.134:9092,外://node7:9093
  听众=内部://192.168.111.134:9092,外://node7:9093
  listener.security.protocol.map=内部:明文,外面:明文
  inter.broker.listener.name= 
内   

解释:相当于开通2个端口,如果服务器多网卡可以主机名部分填写外网地址。
如果采用统一管理,可采用主机名解析,用nginx代理。
上面的变更,需要3台重启集群重启生效,zk监听地址不一样了,如图(所以要考虑到业务,建议标准化配置)
卡夫卡集群常见的跨网络访问详解

  

2,服务端主机
内网地址主机名(这里采用域名解析)

  
 <代码>注意:官网也提供了安全加密,非文本加密方式,如果卡夫卡和zk都要求安全,建议参考官网统一配置 
  

卡夫卡集群常见的跨网络访问详解

  

官网相关参数解释:

  

host.name:
卡夫卡集群常见的跨网络访问详解

  

advertised.host.name:
advertised.listeners:
听众:

  

卡夫卡集群常见的跨网络访问详解“> <br/> <img src=

卡夫卡集群常见的跨网络访问详解