kafka搭建 快速搭建Kafka服務

2021-10-11 13:47:31 字數 2115 閱讀 8415

搞流處理的話,無論如何是繞不過kafka的了,還好kafka是乙個概念比較好理解的架構模型。

我覺得官方的這三張圖已經很好地把模型結構給闡述清楚了。

發布-訂閱模型:實現訊息寫入與訊息讀取解耦。kafka相當於是乙個訊息緩衝池

2. 日誌檔案順序結構:kafka的高吞吐量就是依賴順序寫入(當然還包括了一些零拷貝的內容);訊息可以寫入多個分割槽來實現並行,但是多分割槽的主題只能保證乙個分區內的訊息是有序的。

概念理解了,就可以開始上手實踐。(概念理解看起來簡單,但是真正要把乙個框架的細節研究透需要花費大量的精力)

說到入門,無論是哪個框架的學習,我都是推薦直接看官方文件. 三個原因:1. 最新的版本和**(基本上版本一更新,文件也會同步) 2. 比較準確(畢竟受這麼多人監督) 3. 寫的比較精緻用心(為了吸引大家來用吧)

可能有人覺得直接看英文壓力太大,其實要想成為優秀的程式設計師,英文是必備技能了,所以咬咬牙還是硬啃吧,回頭你會發現,其實英文文件看起來還是挺簡單的(起碼比**簡單多了)。

接下來的**主要來自官方文件

tar -xzf kafka_2.12-2.2.0.tgz 

cd kafka_2.12-2.2.0

解壓後,我一般會在.bashrc配置檔案中加入以下兩行**:

export
2. 啟動服務

kafka是通過zookeeper來對broker(即訊息具體負責人)進行管理, 需啟動zookeeper集群。若已有zookeeper集群,可直接使用。同時kafka原始碼包裡也自帶zookeeper

# 加--daemon選項可實現後台執行守護程序

bin/zookeeper-server-start.sh config/zookeeper.properties

broker服務是真正處理訊息的程序,他包括響應生產者和消費者請求,同時也負責本broker內的分割槽副本同步等工作。

# 同樣,加--daemon選項可實現後台執行守護程序

bin/kafka-server-start.sh config/server.properties

3. 主題建立

kafka提供了一些工具來進行主題管理工作, 需指定broker服務的ip和埠(預設9092)

# 建立主題

bin/kafka-topics.sh --create --bootstrap-server localhost:9092

--replication-factor 1 --partitions 1 --topic test

# 判斷主題是否成功建立

bin/kafka-topics.sh --list --bootstrap-server localhost:9092

4. 測試是否可正常寫入和消費

# 使用kafka自帶的生產者工具

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

# 在開啟乙個終端,使用kafka自帶的消費者工具

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092

--topic test --from-beginning

此時,如果在生產者終端輸入內容,然後在消費者終端能看到資料,那就證明kafka在正常運作

關於搭建乙個穩健的用於生產環境kafka集群還需要更多的知識和考慮更多的業務場景。

快速搭建kafka集群

先安裝jdk和zookeeper 修改配置檔案,進入config目錄修改server.properties檔案 第21行 broker.id 1,每個節點配置乙個編號,保證每個節點的編號在集群裡面是唯一的。第31行 listeners plaintext 開啟註解配置機器的ip和埠號,預設9092。...

使用Docker快速搭建Kafka開發環境

1 zookeeper 1 kafka 這裡以我自己最常用的wurstmeister kafka為例,使用docker compose執行乙個只有乙個zookeeper node和乙個kafka broker的開發環境 version 2 services zoo1 image wurstmeist...

搭建kafka環境

步驟2 啟動zookeeper bin zookeeper server start.sh config zookeeper.properties步驟3 修改配置檔案config server.properties,新增如下內容 host.name localhost advertised.host...