暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Kafka网络配置大全:内网、外网、内外网分离

大数据从业者 2021-06-09
5227

前言

话说Pulsar势头猛进、发展如火如荼啊,未来很可能撼动Kafka霸主地位。但是,当前生产环境中Kafka的使用率还是极高的。纵然笔者有心想深度体验下Pulsar,奈何太多客户不买账啊,还是痴迷于继续用Kafka,被迫营业太难了,哈哈。最近有几个新局点陆续有Kafka直接部署在公网的需求。有朋友用nginx代理Kafka集群,这种方案笔者感觉太小众,不如所有broker节点共用一个公网ip、然后分别使用不同公网端口(毕竟公网ip资源紧张啊),故有此文。本文主要探究Kafka三种网络配置方案:内网配置、外网配置、内外网分离配置。注:sasl权限认证及ssl加密暂不在本文讨论范围(如果环境未开启认证,下列配置直接使用PLAINTEXT)

 

内网配置

内网使用是最普通、最常规的使用方法。配置个listeners就行,如:

    listeners = PLAINTEXT://your.host.name:9092

     

    外网配置

    除了listeners外,需要新加个配置advertised.listeners。

      listeners=SASL_SSL://内网IP:内网端口
      advertised.listeners=SASL_SSL://外网IP:外网端口

      以上配置后,如果外网还访问不了,绝逼是防火墙或路由映射上有问题。

      注:1)如果Kafka节点不能访问公网,这种配置会造成内网不能使用Kafka。2)如果通过ambari部署HDP集群,注意python脚本后台搞的小动作,比如开了kerberos的场景,后台脚本强制将listeners的值赋值给advertised.listeners(这一点比较坑)。原生Kafka的默认行为是,如果用户不显式配置advertised.listeners,该值默认赋值为listeners

       

      内外网分离配置

      内外网分离配置,顾名思义,就是同时支持通过内网和外网访问Kafka。内网走内网、外网走外网,相互分离、互不影响。

        listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL:SASL_SSL
        listeners=INTERNAL://192.168.1.11:9092,EXTERNAL://192.168.1.11:9093
        advertised.listeners=INTERNAL://192.168.1.11:9092,EXTERNAL://<公网ip>:<公网端口>
        inter.broker.listener.name=INTERNAL

        说明:192.168.1.11为内网ip,9092为内网端口

           公网ip端口映射到内网ip的9093端口

           (建议可以同名映射,如公网端口50000映射到内网端口50000)

        注意:Kafka 2.3.0以后版本中存在配置冲突

          Only one of inter.broker.listener.name andsecurity.inter.broker.protocol should be set

          原创不易、欢迎点赞、转发、收藏、关注!!

           


          文章转载自大数据从业者,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

          评论