Apache Kafka單節(jié)點極速部署指南及搭建開發(fā)單節(jié)點環(huán)境的操作步驟
Apache Kafka單節(jié)點極速部署指南:10分鐘搭建開發(fā)單節(jié)點環(huán)境
Kafka簡介:Apache Kafka是由LinkedIn開發(fā)并捐贈給Apache基金會的分布式流處理平臺,現(xiàn)已成為實時數(shù)據(jù)管道和流應(yīng)用領(lǐng)域的行業(yè)標(biāo)準(zhǔn)。它基于高吞吐、低延遲的設(shè)計理念,能夠輕松處理每秒百萬級消息傳輸,具備水平擴展、數(shù)據(jù)持久化、高容錯等核心特性。Kafka廣泛應(yīng)用于日志聚合、實時監(jiān)控、事件溯源、消息隊列等場景,是大數(shù)據(jù)生態(tài)中連接傳統(tǒng)數(shù)據(jù)庫與流處理引擎(如Flink、Spark)的關(guān)鍵組件,被騰訊云、Netflix、Uber等頂級互聯(lián)網(wǎng)企業(yè)深度應(yīng)用于核心業(yè)務(wù)系統(tǒng)。
一、環(huán)境準(zhǔn)備與安裝
1. 安裝 Java(詳細步驟)
# CentOS sudo yum install -y java-1.8.0-openjdk-devel # Ubuntu sudo apt update && sudo apt install -y openjdk-8-jdk # 驗證安裝 java -version # 應(yīng)輸出類似 "openjdk version 1.8.0_382"
2. 下載并解壓 Kafka
wget https://downloads.apache.org/kafka/3.6.1/kafka_2.13-3.6.1.tgz tar -xzf kafka_2.13-3.6.1.tgz mv kafka_2.13-3.6.1 /opt/kafka # 建議移動到標(biāo)準(zhǔn)化目錄 cd /opt/kafka
如果服務(wù)器網(wǎng)絡(luò)不佳可在Kafka
官網(wǎng)手動下載并上傳至服務(wù)器:
下載地址:Apache Kafka
二、配置文件詳解
1. ZooKeeper 配置
config/zookeeper.properties
# 數(shù)據(jù)存儲目錄(重要:生產(chǎn)環(huán)境需改為持久化路徑,如 /var/lib/zookeeper) dataDir=/tmp/zookeeper # 客戶端連接端口 clientPort=2181 # 最大客戶端連接數(shù)(0 表示無限制) maxClientCnxns=0 # 集群配置(單節(jié)點無需配置) # server.1=zk-node1:2888:3888 # server.2=zk-node2:2888:3888
2. Kafka Broker 配置
config/server.properties
# Broker 的唯一標(biāo)識(集群中每個節(jié)點必須不同) broker.id=0 # 監(jiān)聽地址和協(xié)議(生產(chǎn)環(huán)境建議用具體IP,如 PLAINTEXT://192.168.1.100:9092) listeners=PLAINTEXT://:9092 # Kafka 日志存儲目錄(生產(chǎn)環(huán)境需改為持久化路徑,如 /var/lib/kafka-logs) log.dirs=/tmp/kafka-logs # 每個 Topic 的默認(rèn)分區(qū)數(shù)(影響并行度) num.partitions=1 # ZooKeeper 連接地址(集群用逗號分隔,如 zk1:2181,zk2:2181) zookeeper.connect=localhost:2181 # 其他重要參數(shù)(可選) # 日志保留時間(小時) log.retention.hours=168 # 單個日志文件最大大?。ㄗ止?jié)) log.segment.bytes=1073741824 # 網(wǎng)絡(luò)線程數(shù) num.network.threads=3 # IO 線程數(shù) num.io.threads=8
三、配置為系統(tǒng)服務(wù)(Systemd)
1. 創(chuàng)建 ZooKeeper 服務(wù)文件
sudo vim /etc/systemd/system/zookeeper.service
內(nèi)容如下:
[Unit] Description=Apache ZooKeeper Service After=network.target [Service] Type=simple User=kafka # 建議創(chuàng)建專用用戶(見下方說明) Group=kafka ExecStart=/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties ExecStop=/opt/kafka/bin/zookeeper-server-stop.sh Restart=on-failure RestartSec=10s [Install] WantedBy=multi-user.target
2. 創(chuàng)建 Kafka 服務(wù)文件
sudo vim /etc/systemd/system/kafka.service
內(nèi)容如下:
[Unit] Description=Apache Kafka Service After=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 RestartSec=10s [Install] WantedBy=multi-user.target
3. 創(chuàng)建專用用戶和目錄(增強安全性)
sudo useradd -r -s /bin/false kafka sudo mkdir -p /var/lib/{zookeeper,kafka-logs} sudo chown -R kafka:kafka /var/lib/{zookeeper,kafka-logs} /opt/kafka
4. 修改配置文件中的持久化路徑
修改 zookeeper.properties
:
dataDir=/var/lib/zookeeper
修改 server.properties
:
log.dirs=/var/lib/kafka-logs
5. 啟用服務(wù)
sudo systemctl daemon-reload sudo systemctl enable --now zookeeper sudo systemctl enable --now kafka # 檢查狀態(tài) sudo systemctl status zookeeper kafka
*四、驗證服務(wù)
1. 功能測試(詳細命令)
# 創(chuàng)建 Topic(明確指定分區(qū)和副本) /opt/kafka/bin/kafka-topics.sh --create \ --topic test-topic \ --bootstrap-server localhost:9092 \ --partitions 3 \ --replication-factor 1 # 生產(chǎn)消息(輸入多行消息后按 Ctrl+C 退出) /opt/kafka/bin/kafka-console-producer.sh \ --topic test-topic \ --bootstrap-server localhost:9092 # 消費消息(新終端執(zhí)行) /opt/kafka/bin/kafka-console-consumer.sh \ --topic test-topic \ --bootstrap-server localhost:9092 \ --from-beginning
測試效果如圖:
五、關(guān)鍵配置項深度解析
配置項 | 作用說明 | 生產(chǎn)環(huán)境建議值 |
---|---|---|
broker.id | Broker 的唯一標(biāo)識,集群中必須唯一 | 數(shù)字遞增(0,1,2…) |
listeners | Broker 監(jiān)聽的網(wǎng)絡(luò)地址和協(xié)議 | 使用服務(wù)器內(nèi)網(wǎng)IP,如 PLAINTEXT://192.168.1.100:9092 |
log.dirs | Kafka 數(shù)據(jù)存儲目錄,多個目錄用逗號分隔可提升性能 | 掛載獨立磁盤,如 /data/kafka-logs |
zookeeper.connect | ZooKeeper 集群地址,格式為 host1:port1,host2:port2 | 至少3節(jié)點集群 |
num.partitions | 新建 Topic 的默認(rèn)分區(qū)數(shù)(影響并行處理能力) | 根據(jù)業(yè)務(wù)需求設(shè)置(通常3-10) |
log.retention.hours | 消息保留時間 | 按業(yè)務(wù)需求(如 168=7天) |
default.replication.factor | 新建 Topic 的默認(rèn)副本數(shù)(高可用關(guān)鍵) | 至少2,集群節(jié)點數(shù)≥副本數(shù) |
六、故障排查指南
1. 查看服務(wù)日志
# ZooKeeper 日志 journalctl -u zookeeper -f # Kafka 日志 journalctl -u kafka -f
2. 端口占用檢查
sudo netstat -tlnp | grep -E '2181|9092'
3. 文件權(quán)限修復(fù)
sudo chown -R kafka:kafka /var/lib/{zookeeper,kafka-logs}
到此這篇關(guān)于Apache Kafka單節(jié)點極速部署指南及搭建開發(fā)單節(jié)點環(huán)境的操作步驟的文章就介紹到這了,更多相關(guān)Apache Kafka單節(jié)點部署內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
centos7 安裝mysql和mysqlclient遇到的坑總結(jié)
這篇文章主要介紹了centos7 安裝mysql和mysqlclient遇到的坑以及相關(guān)知識點代碼,有需要的朋友們參考下。2019-08-08阿里云服務(wù)器ping不通解決辦法(云服務(wù)器搭建完環(huán)境訪問不了ip解決辦法)
這篇文章主要介紹了阿里云服務(wù)器ping不通解決辦法(云服務(wù)器搭建完環(huán)境訪問不了ip解決辦法),文中通過圖文介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2007-05-05詳解Xampp和wordpress在Centos7上的搭建與使用
通過實例給大家詳細分析了Xampp和wordpress在Centos7上的搭建與使用,對此有需要的朋友可以學(xué)習(xí)下。2018-02-02CentOS 6.3 安裝配置Apache2.2.6的方法(源碼編譯安裝)
這篇文章主要介紹了CentOS 6.3 安裝配置Apache2.2.6的方法,需要的朋友可以參考下2014-11-11