在CentOS上配置Kafka涉及多個步驟,包括安裝必要的軟件、配置環境、啟動服務以及進行性能優化等。以下是一個詳細的指南:
Kafka需要Java運行環境,因此首先需要安裝JDK。
sudo yum install java-1.8.0-openjdk-devel
java -version
從Apache Kafka官網下載適合的版本,然后解壓到指定目錄。
wget https://downloads.apache.org/kafka/3.5.2/kafka_2.12-3.5.2.tgz
tar -xzvf kafka_2.12-3.5.2.tgz
sudo mv kafka_2.12-3.5.2 /opt/kafka
Kafka依賴于Zookeeper,因此需要先配置和啟動Zookeeper。
編輯Zookeeper配置文件 /opt/kafka/config/zoo.cfg:
tickTime=2000
dataDir=/tmp/zookeeper
clientPort=2181
啟動Zookeeper:
/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zoo.cfg
進入Kafka目錄并編輯 config/server.properties 文件。
關鍵配置項:
broker.id: 每個節點的唯一標識。listeners: 監聽協議及地址。log.dirs: Kafka日志存儲目錄。zookeeper.connect: Zookeeper地址。示例配置:
broker.id=1
listeners=PLAINTEXT://localhost:9092
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.enabled.mechanisms=PLAIN
sasl.mechanism.inter.broker.protocol=PLAIN
log.dirs=/tmp/kafka-logs
zookeeper.connect=localhost:2181
使用以下命令啟動Kafka服務:
/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
創建Kafka服務文件 /etc/systemd/system/kafka.service:
[Unit]
Description=Apache Kafka server
After=network.target zookeeper.service
[Service]
Type=simple
User=kafka
Group=kafka
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
ExecStop=/opt/kafka/bin/kafka-server-stop.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
啟用并啟動服務:
sudo systemctl daemon-reload
sudo systemctl enable kafka
sudo systemctl start kafka
如果需要從外部訪問Kafka,需要開放相關端口:
sudo firewall-cmd --zone=public --add-port=9092/tcp --permanent
sudo firewall-cmd --reload
使用以下命令創建一個主題并測試:
創建主題:
/opt/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
發送消息:
/opt/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
消費消息:
/opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
對于生產環境,建議配置監控和日志管理工具,如Kafka Manager或Prometheus結合Grafana,以監控Kafka集群的健康狀況和性能指標。
TCP網絡優化:
sudo sysctl -w net.core.rmem_default=262144
sudo sysctl -w net.core.rmem_max=2097152
sudo sysctl -w net.core.wmem_default=262144
sudo sysctl -w net.core.wmem_max=2097152
進程級資源限制優化:
sudo vi /etc/security/limits.conf
添加或修改以下行:
* soft nofile 655360
* hard nofile 655360
* soft nproc 8096
* hard nproc 8096
通過以上步驟,您可以在CentOS上成功安裝和配置Kafka,并確保其穩定運行。