以下是Ubuntu上優化Kafka網絡設置的關鍵步驟:
配置靜態IP
編輯Netplan配置文件(如/etc/netplan/01-netcfg.yaml
),為網卡指定靜態IP、網關和DNS,確保網絡穩定性。
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8]
應用配置:sudo netplan apply
。
防火墻設置
開放Kafka端口(默認9092):sudo ufw allow 9092/tcp
。
監聽與廣告地址
listeners
:綁定監聽IP和端口(支持多網卡監聽,如PLAINTEXT://0.0.0.0:9092
或指定IP)。advertised.listeners
:配置客戶端實際連接地址(需與集群網絡互通,支持多網段)。listeners=PLAINTEXT://eth0:9092,PLAINTEXT://eth1:9093
advertised.listeners=PLAINTEXT://192.168.1.100:9092,PLAINTEXT://10.0.0.10:9093
緩沖區與線程優化
socket.send.buffer.bytes
/socket.receive.buffer.bytes
:調整發送/接收緩沖區大?。J1MB,可增至10MB提升吞吐量)。num.network.threads
:設置為CPU核心數的2倍(如8核設為16),處理網絡請求。num.io.threads
:匹配CPU核心數(如8核設為8),處理磁盤I/O。協議與壓縮
listeners
中添加SSL://
協議,并設置security.inter.broker.protocol=SSL
。compression.type=snappy
),減少傳輸數據量。分區與副本策略
replication.factor
)設為3,保障高可用。跨網段訪問
通過listener.security.protocol.map
區分內網/外網協議,例如:
listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL:SASL_PLAINTEXT
inter.broker.listener.name=INTERNAL
內網使用明文,外網通過SASL認證。
網絡設備升級
使用高性能網卡(如萬兆網卡)并啟用多隊列(ethtool -l eth0
查看隊列數,調整num.network.threads
匹配)。
操作系統參數
ulimit -n 65536
。net.core.somaxconn=32768
、net.ipv4.tcp_max_syn_backlog=16384
。kafka-console-producer
和kafka-console-consumer
跨網段測試消息收發。注意:修改配置前需在測試環境驗證,生產環境建議分階段調整并監控效果。參考來源:。