個人網(wǎng)站開發(fā)永久免費google搜索引擎
安裝和部署Apache Kafka需要以下幾個步驟,包括下載 Kafka、配置 ZooKeeper(或者使用 Kafka 自帶的 Kafka Raft 模式替代 ZooKeeper),以及啟動 Kafka 服務(wù)。以下是一個但基于 Linux 的典型安裝流程,可以根據(jù)需要改裝到其他操作系統(tǒng)。
1.安裝的。
保證您的系統(tǒng)安裝了以下依賴:
- Java(Kafka依賴于Java運行環(huán)境,推薦JDK 8及以上版本)
# 檢查 Java 版本
java -version# 如果沒有安裝 Java,可以通過以下命令安裝(適用于 Ubuntu/Debian 系統(tǒng))
sudo apt update
sudo apt install default-jdk -y
2.下載并解壓Kafka
- 訪問Kafka官方下載頁面選擇最新的穩(wěn)定版本,下載二進(jìn)制包(一般使用Scala版本的Kafka)。也可以使用命令行直接下載:
# 下載 Kafka(以 Kafka 3.0.0 為例,Scala 2.13)
wget https://downloads.apache.org/kafka/3.0.0/kafka_2.13-3.0.0.tgz# 解壓 Kafka 壓縮包
tar -xzf kafka_2.13-3.0.0.tgz# 進(jìn)入 Kafka 目錄
cd kafka_2.13-3.0.0
3.配置ZooKeeper
在傳統(tǒng)的 Kafka 部署中,Kafka 依賴ZooKeeper來管理集群的元數(shù)據(jù)。如果使用的是傳統(tǒng)的 Kafka 版本,仍需安裝并運行 ZooKeeper。
注意:自 Kafka 2.8 開始,Kafka 引入了 Raft 模式,可以添加 ZooKeeper。
- 安裝ZooKeeper(如果選擇不使用Raft模式)
Kafka自帶了一個基礎(chǔ)的ZooKeeper配置文件,可以直接使用。
# 啟動 ZooKeeper 服務(wù)(默認(rèn)配置)
bin/zookeeper-server-start.sh config/zookeeper.properties
ZooKeeper默認(rèn)會在2181端口上運行。
4.啟動Kafka Broker
- Kafka的配置文件在
config/server.properties
中。 - 使用默認(rèn)配置啟動Kafka Broker:
# 啟動 Kafka broker
bin/kafka-server-start.sh config/server.properties
默認(rèn)情況下,Kafka Broker 會在9092端口上運行。
5.測試Kafka
Kafka自帶了生產(chǎn)者和消費者的命令行工具,下面我們通過這些工具來驗證 Kafka 的工作狀態(tài)。
1.創(chuàng)建 Kafka 主題
Kafka 使用“主題”來組織消息,首先需要創(chuàng)建一個主題:
# 創(chuàng)建名為 test 的主題(默認(rèn)副本數(shù)為1,分區(qū)數(shù)為1)
bin/kafka-topics.sh --create --topic test --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1
列出集群中的所有主題:
bin/kafka-topics.sh --list --bootstrap-server localhost:9092
2.生產(chǎn)消息
使用 Kafka 提供的命令行生產(chǎn)者工具向test
主題發(fā)送消息:
# 啟動生產(chǎn)者,向 test 主題發(fā)送消息
bin/kafka-console-producer.sh --topic test --bootstrap-server localhost:9092
輸入一些消息,每條消息按行輸入,按回車鍵后發(fā)送。
3.消費消息
使用 Kafka 的消費者工具讀取test
主題中的消息:
# 啟動消費者,讀取 test 主題的消息
bin/kafka-console-consumer.sh --topic test --from-beginning --bootstrap-server localhost:9092
消費者分區(qū)頭讀取所有消息,并在控制臺輸出。
6. Kafka 配置文件說明
Kafka 的主配置文件為config/server.properties
,其中包含了 Kafka 運行時的各種參數(shù)。常用的配置項包括:
broker.id
: 唯一標(biāo)識 Kafka Broker 的 ID,在多集群集群中,每個 Broker 的 ID 都應(yīng)該是唯一的。listeners
:Kafka Broker 監(jiān)聽的地址和端口,默認(rèn)是localhost:9092
。log.dirs
: Kafka存儲日志(即消息)的目錄,默認(rèn)為/tmp/kafka-logs
。zookeeper.connect
: ZooKeeper 連接字符串(在使用 ZooKeeper 模式時)。
7.關(guān)閉Kafka和ZooKeeper
完成測試后,可以關(guān)閉Kafka和ZooKeeper服務(wù)。
# 停止 Kafka 服務(wù)
bin/kafka-server-stop.sh# 停止 ZooKeeper 服務(wù)
bin/zookeeper-server-stop.sh
8.部署多集群資源
在生產(chǎn)環(huán)境中,通常會部署 Kafka 的多集群集群。這涉及到:
- 修改每個
broker
的broker.id
,確保唯一。 - 修改
listeners
參數(shù),確保每個經(jīng)紀(jì)人都有唯一的IP地址和端口。 - 增加 ZooKeeper 的高可用配置(或者使用 Kafka Raft 模式)。
Kafka集群部署需要配置多臺服務(wù)器,將多個broker連接到相同的ZooKeeper集群。