Kafka网络配置主要涉及server.properties文件中的参数及系统层面优化,核心配置如下:
- 监听配置
listeners:定义Broker监听的协议、主机名和端口,如PLAINTEXT://0.0.0.0:9092(绑定所有接口)。advertised.listeners:指定客户端实际连接的地址,用于内外网分流或负载均衡场景,如内网PLAINTEXT://192.168.1.1:9092、外网PLAINTEXT://public.ip:9092。
- 缓冲区优化
socket.send.buffer.bytes/socket.receive.buffer.bytes:调整TCP发送/接收缓冲区大小(默认1MB),可提升吞吐量。
- 线程配置
num.network.threads:处理网络请求的线程数,建议设置为CPU核心数的2倍。num.io.threads:处理I/O操作的线程数,需结合磁盘数量调整。
- 安全与协议
- 启用SSL/TLS加密:需配置
ssl.keystore.location等参数。 - 内外网隔离:通过
listener.security.protocol.map区分内网/外网协议,如INTERNAL:PLAINTEXT,EXTERNAL:SSL。
- 启用SSL/TLS加密:需配置
- 系统层面优化
- 调整内核参数:增大TCP缓冲区(
net.core.rmem_max等)、启用TCP快速重传。 - 防火墙放行:确保Kafka端口(默认9092)在防火墙中开放。
- 调整内核参数:增大TCP缓冲区(
参数调整需结合业务负载和硬件环境,优先通过监控工具(如JMX)验证效果。详细配置可参考官方文档。