直接暴露方式

1、无需添加listeners与advertised.listeners两个配置项
2、修改集群中每个broker的advertised.host.name,将其修改为你想要映射的公网IP或域名
3、修改集群中每个broker的advertised.port,将其修改为你想要映射到公网上的端口
4、必须确保集群中的每个broker都暴露的公网,也就是都必须进行映射。
5、如果多个broker中的advertised.host.name相同,也就是对外只有一个公网IP,那么多个broker间的advertised.port必须不同。
6、如果多个broker中的advertised.host.name不同,也就是对外含有多个公网IP,那么多个broker间的advertised.port可以相同。
7、添加映射规则的时候,必须将每个broker的IP和9092端口(kafka默认端口)映射至当前broker中配置的advertised.host.name(公网IP或域名)和advertised.port(端口)上。
8、java api 外网访问kafka时,bootstrap.servers配置项需要添加所有映射的advertised.host.name:advertised.port

nginx代理方式

在nginx配置文件最外层添加以下配置:

stream{
    upstream brokers{
        server broker1_ip:broker1_port;
        server broker2_ip:broker2_port;
        server broker3_ip:broker3_port;
    }
    server{
        listen 18001;
        proxy_pass brokers;
    }
}

其中broker1_ip是每个broker的advertised.host.name,将其修改为你想要映射的公网IP或域名
broker1_port是每个broker的advertised.port,将其修改为你想要映射到公网上的端口
将每个broker的IP和9092端口(kafka默认端口)映射至当前nginx配置文件中配置的broker1_ip(公网IP或域名)和broker1_port(端口)上。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐