微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

场景说明:
当客户端与服务端在不同区域(跨防火墙,地址均做了映射)时,客户端访问kafka时会出现获取不到broker的问题,但是网络之间是互通的。但在跨防火墙下,client请求zookeeper的时候,zookeeper返回给client的broker IP是kafka的实际地址,而不是映射地址,因此client会访问失败。

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

解决方式一、
1、配置文件:listeners=PLAINTEXT://主机名:9092
2、服务端hosts:内网地址 主机名
3、客户端hosts :外网地址 主机名

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

解决方式2:(案例)
1、注释:
listeners=PLAINTEXT://192.168.111.134:9092

添加
inter.broker.protocol.version=1.0
log.message.format.version=1.0
advertised.listeners=INSIDE://192.168.111.134:9092,OUTSIDE://node7:9093
listeners=INSIDE://192.168.111.134:9092,OUTSIDE://node7:9093
listener.security.protocol.map=INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT
inter.broker.listener.name=INSIDE

解释:相当于开通2个端口,如果服务器多网卡可以主机名部分填写外网地址,如果采用统一管理,可采用主机名解析,Nginx代理跨网段。需要一起重启集群,因为地址不一样了(所以要考虑到业务,建议标准化配置)

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

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

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

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

官网相关参数解释:

host.name:

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

advertised.host.name:
advertised.listeners:
listeners:

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


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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐