以下是在Ubuntu上完美結合Kafka的關鍵步驟,涵蓋環境準備、安裝配置及優化要點:
安裝Java環境
Kafka依賴Java運行,推薦使用OpenJDK 11+:
sudo apt update && sudo apt install openjdk-11-jdk -y
java -version # 驗證安裝
配置系統參數(可選)
sudo nano /etc/security/limits.conf
添加:* soft nofile 65536
* hard nofile 65536
vm.swappiness
)以提升性能。下載與解壓Kafka
從官網獲取最新版本,推薦使用wget
直接下載:
wget https://downloads.apache.org/kafka/3.6.0/kafka_2.13-3.6.0.tgz
tar -xzf kafka_2.13-3.6.0.tgz
sudo mv kafka_2.13-3.6.0 /usr/local/kafka
配置Zookeeper(Kafka依賴組件)
sudo mkdir -p /var/lib/zookeeper
sudo nano /usr/local/kafka/config/zookeeper.properties
設置:dataDir=/var/lib/zookeeper
clientPort=2181
sudo /usr/local/kafka/bin/zookeeper-server-start.sh /usr/local/kafka/config/zookeeper.properties
配置Kafka Broker
server.properties
關鍵參數:sudo nano /usr/local/kafka/config/server.properties
broker.id=0 # 每個節點唯一標識
listeners=PLAINTEXT://<服務器IP>:9092 # 監聽地址
log.dirs=/var/lib/kafka/logs # 日志存儲路徑
zookeeper.connect=localhost:2181 # Zookeeper地址
sudo /usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties
多節點集群配置
broker.id
唯一,listeners
指向正確IP。kafka-storage.sh
生成集群ID并同步至所有節點:sudo /usr/local/kafka/bin/kafka-storage.sh random-uuid
Topic創建與分區策略
sudo /usr/local/kafka/bin/kafka-topics.sh --create --topic test --replication-factor 3 --partitions 3 --zookeeper localhost:2181
安全與防火墻配置
# 在server.properties中添加:
ssl.keystore.location=/path/to/keystore.jks
ssl.truststore.location=/path/to/truststore.jks
sudo ufw allow 9092/tcp
sudo ufw allow 2181/tcp
使用Kafka自帶工具
sudo /usr/local/kafka/bin/kafka-topics.sh --list --bootstrap-server localhost:9092
sudo /usr/local/kafka/bin/kafka-consumer-groups.sh --describe --group <消費組名> --bootstrap-server localhost:9092
第三方監控方案
server.properties
中配置log.retention.hours
(默認168小時)和log.segment.bytes
(默認1GB),避免磁盤占滿。num.network.threads
(網絡線程數,默認3)和num.io.threads
(IO線程數,默認8),適應高吞吐場景。通過以上步驟,可在Ubuntu上實現Kafka的高效部署與穩定運行,滿足生產級需求。