![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5SO4UGOwEGN2gjNmJzN3QWO4MjZlF2MwEmMxADO1Y2My8CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
什麼是Kafka
官網介紹:
ApacheKafka®是一個分布式流媒體平台。這到底是什麼意思呢?
我們認為流媒體平台具有三個關鍵功能:
1. 它可以讓你釋出和訂閱記錄流。在這方面,它類似于消息隊列或企業消息傳遞系統。
2. 它允許您以容錯方式存儲記錄流。
3. 它可以讓您在發生記錄時處理記錄流。
幾個概念:
- Kafka作為一個或多個伺服器上的叢集運作。
- Kafka叢集以稱為主題的類别存儲記錄流。
-
每個記錄由一個鍵,一個值和一個時間戳組成。詳細介紹 :
這篇部落格寫的很詳細
-
下載下傳安裝
官網下載下傳位址:
https://www.apache.org/dyn/closer.cgi?path=/kafka/2.5.0/kafka-2.5.0-src.tgz
-
- 解壓:
tar zxf kafka_2.11-1.0.0
- 解壓:
-
- 啟動Zookeeper:測試可以采用kafka自帶zookeeper./bin/zookeeper-server-start.sh config/zookeeper.properties
-
- 啟動kafka:
./bin/kafka-server-start.sh config/server.properties
- 啟動kafka:
在預設的 kafka_2.11-1.0.0/config 目錄下的server.properties檔案中
預設端口為9092
操作kafka:
- 建立名為
的topic./bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic testtest
- 建立生産者(生産消息):./bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
- 建立消費者(消費消息):./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
kafka叢集
- 建立配置檔案
拷貝到其他機器server.properties
- 修改
server.properties
配置,修改為:
broker.id=1
listeners=PLAINTEXT://:9093
log.dir=/tmp/kafka-logs-1
broker.id:目前機器在叢集中的唯一辨別,每台伺服器的broker.id都不能相同
log.dirs:是kafka接收消息存放路徑
- 啟動 ./bin/kafka-server-start.sh config/server.properties &
- 建立topic ./bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic test2
- 檢視topic./bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic test2
Topic:test2 PartitionCount:1 ReplicationFactor:3 Configs:
Topic: zhh-replicated-topic Partition: 0 Leader: 2 Replicas: 2,0,1 Isr: 2,0,1
第一行表示彙總資訊. 有1個分區, 3份備份
第二行表示每個分區的資訊,對分區0,上司節點id是2, 備份到2,0,1.
leader 表示負責某分區全部讀寫的節點. 每個分區都會有随機選擇的leader.
Replicas 表示需要複制到的節點, 不管是否活着.
Isr 表示(“in-sync” replicas), 正在同步的備份, 表示可用的活着的節點
## 消息測試
- 建立生産者
```text
./bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test2
-
建立消費者./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test2 --from-beginning
問題檢測
-
節點崩潰ps aux | grep server.properties #檢視節點(73370)是否已啟用
kill -9 73370 #殺死此節點
-
zookeeper
zookeeper打開後要打開新的連接配接操作kafka。
更多文章:點選這裡
掃碼關注公衆号《ipoo》
本文由部落格群發一文多發等營運工具平台 OpenWrite 釋出