Kafka依賴Java運行環境(JRE/JDK)和ZooKeeper進行集群協調,需先完成安裝:
# 更新軟件包索引
sudo apt update
# 安裝OpenJDK 8(Kafka 3.x兼容版本)
sudo apt install -y openjdk-8-jdk
# 驗證Java安裝
java -version
# 安裝ZooKeeper(Debian默認倉庫版本)
sudo apt install -y zookeeperd
# 啟動并啟用ZooKeeper服務
sudo systemctl start zookeeper
sudo systemctl enable zookeeper
# 驗證ZooKeeper狀態
sudo systemctl status zookeeper
Kafka需要穩定的網絡環境,需正確配置服務器IP地址(以靜態IP為例,適用于Debian 12及以上版本):
# 編輯Netplan配置文件(Debian 12+推薦)
sudo nano /etc/netplan/01-netcfg.yaml
配置示例(替換為你的實際網絡信息):
network:
version: 2
renderer: networkd
ethernets:
ens4: # 網卡名稱(通過`ip a`命令查看)
dhcp4: no
addresses: [192.168.1.100/24] # 靜態IP地址
gateway4: 192.168.1.1 # 網關地址
nameservers:
addresses: [8.8.8.8, 8.8.4.4] # DNS服務器
應用配置:
sudo netplan apply
驗證網絡:
ip addr show ens4 # 確認IP地址已生效
ping -c 4 google.com # 測試網絡連通性
從Apache官網下載最新穩定版Kafka,解壓至指定目錄:
# 創建Kafka安裝目錄
sudo mkdir -p /opt/kafka
# 下載Kafka(以3.5.2版本為例)
wget https://downloads.apache.org/kafka/3.5.2/kafka_2.12-3.5.2.tgz -P /tmp
# 解壓到/opt/kafka
sudo tar -xzf /tmp/kafka_2.12-3.5.2.tgz -C /opt/kafka
# 創建符號鏈接(可選,方便管理)
sudo ln -s /opt/kafka/kafka_2.12-3.5.2 /opt/kafka/current
Kafka的網絡配置主要在server.properties
文件中完成,需重點設置以下參數:
# 進入Kafka配置目錄
cd /opt/kafka/current/config
# 編輯server.properties文件
sudo nano server.properties
關鍵配置項說明:
broker.id
:Broker的唯一標識(集群中需唯一,如broker.id=0
);listeners
:Broker監聽的地址和端口(PLAINTEXT://your.server.ip:9092
,若需支持遠程訪問,替換your.server.ip
為服務器IP;若僅在本地測試,可使用PLAINTEXT://:9092
監聽所有接口);advertised.listeners
:客戶端連接的地址和端口(需為客戶端可解析的地址,如公網IP或域名,格式同listeners
);zookeeper.connect
:ZooKeeper集群地址(如localhost:2181
,集群環境下需列出所有ZooKeeper節點,用逗號分隔);log.dirs
:Kafka日志存儲目錄(如/var/lib/kafka/logs
,需提前創建并授權)。示例配置(遠程訪問場景):
broker.id=0
listeners=PLAINTEXT://192.168.1.100:9092
advertised.listeners=PLAINTEXT://192.168.1.100:9092
zookeeper.connect=localhost:2181
log.dirs=/var/lib/kafka/logs
num.partitions=8 # 默認分區數(根據業務需求調整)
default.replication.factor=3 # 默認副本因子(集群環境下建議≥3)
min.insync.replicas=2 # 最小同步副本數(保證數據可靠性)
log.retention.hours=168 # 日志保留時間(7天)
允許客戶端訪問Kafka的默認端口(9092),避免網絡阻斷:
# 安裝UFW(若未安裝)
sudo apt install -y ufw
# 允許9092端口(TCP)
sudo ufw allow 9092/tcp
# 啟用防火墻
sudo ufw enable
# 驗證規則
sudo ufw status
使用systemd管理Kafka服務,確保開機自啟:
# 進入Kafka bin目錄
cd /opt/kafka/current/bin
# 啟動ZooKeeper(若未單獨配置服務)
# ./zookeeper-server-start.sh ../../config/zookeeper.properties &
# 啟動Kafka
./kafka-server-start.sh ../../config/server.properties &
# 驗證Kafka狀態(通過進程列表)
ps aux | grep kafka
通過Kafka自帶的命令行工具測試網絡連通性和功能:
# 創建測試主題(名稱:test,分區數:1,副本因子:1)
/opt/kafka/current/bin/kafka-topics.sh --create \
--topic test \
--bootstrap-server 192.168.1.100:9092 \
--replication-factor 1 \
--partitions 1
# 列出所有主題(驗證主題是否創建成功)
/opt/kafka/current/bin/kafka-topics.sh --list \
--bootstrap-server 192.168.1.100:9092
# 生產測試消息(向test主題發送一條消息)
/opt/kafka/current/bin/kafka-console-producer.sh --broker-list 192.168.1.100:9092 --topic test
# 消費測試消息(從test主題讀取消息)
/opt/kafka/current/bin/kafka-console-consumer.sh --bootstrap-server 192.168.1.100:9092 --topic test --from-beginning
/etc/sysctl.conf
,優化網絡性能(如增加net.core.somaxconn
至1024,提升連接隊列長度);ssl.keystore.location
和ssl.truststore.location
配置證書,加密客戶端與Broker的通信;batch.size
(默認16KB)和linger.ms
(默認0ms),提高吞吐量;compression.type
(如snappy
、gzip
),減少網絡帶寬消耗。通過以上步驟,可在Debian系統上完成Kafka的網絡配置,并驗證其基本功能。根據實際業務需求(如集群部署、高可用性),還需進一步調整配置參數。