Kafka中一项配置有问题导致一个小时多消耗了50G公网流量费用


预计阅读时间:2 分钟

最近在看阿里云账单的时候发现公网流量资源包成本飙升,经过查询账单明细发现指向的是一台Kafka服务器。当时感觉很奇怪最近也没修改什么,为什么会消耗这么多呢?业务后端服务配置的也是Kafka的内网地址,应该不至于会消耗公网带宽吧?于是查看了几个Kafka的配置文件,最终在server.properties配置文件中发现了一个可疑的配置:

advertised.listeners=PLAINTEXT://公网IP:9191

由于这个地方并不是我配置的,因此第一次看到这个配置我就想这里为什么不直接配置内网IP呢?后面问了一下Leader,是因为我们是做SaaS平台的,有客户选择了私有部署需要和我们的管理端进行交互,所以这里一定要配置公网IP地址才行。但问题来了,一旦这个地方配置公网IP地址,当我们自己的业务后端之间进行通信时也是通过这个公网IP地址发送消息,还有Kafka节点之间的心跳消息也是走公网地址的,这样不消耗公网流量才怪。 为满足业务后端服务及心跳消息走的是内网,私有部署也能正常连接交互消息,将以下配置进行修改:

# 客户端监听
listeners=INTERNAL://:9091,EXTERNAL://:9191

# 对外通告监听的地址
advertised.listeners=INTERNAL://内网IP:9091,EXTERNAL://外网IP:9191

# listener名字映射到安全协议
listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT

# 用于配置broker之间通信使用的监听器名称
inter.broker.listener.name=INTERNAL

# 用于配置control之间通信使用的监听器名称
control.plane.listener.name=INTERNAL

本文由 leojamin 原创,转载请注明出处。

📖相关推荐