Kafka配置内外网独立监听
背景:
业务dev环境在vpc下,单网卡,内部使用私有ip进行通信,外部使用机房ip进行NAT;
当前配置dev环境日志采集链路为:app server(vpc)→ ds server(公网)→ kafka server (vpc);
其中kafka实际默认注册到zk中的地址为私有ip,ds server无法访问;
诉求:
kafka需要同时支持私有ip给vpc内其他业务使用,也需要注册公网ip给外部服务(如ds server)访问使用;
操作:
参考:https://juejin.cn/post/6893410969611927566
关键配置为:
listeners=EXTERNAL://10.150.0.6:9096,INTERNAL://10.150.0.6:9095
advertised.listeners=INTERNAL://10.150.0.6:9095,EXTERNAL://10.194.106.61:9096
inter.broker.listener.name=INTERNAL
listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
备注:
- 1,关于advertised.listeners,listeners的绑定问题,实际就通过EXTERNAL,INTERNAL名字进行,可参考:http://www.devtalking.com/articles/kafka-practice-16/
- 2,文档中均说明上述配置broker信息为配置到zk中,实际上当前bootstrap-servers也同步支持相应的metadata信息获取;
- 3,kafka实际操作流程为:基于bootstrap-servers(对外屏蔽了zk,同时长期考虑对zk进行替换)获取到metadata信息(如broker列表);之后再将数据写入broker中;
- 4,实际配置单节点kafka集群时,会有各种问题,最后仍使用多节点方式;