什麼是Kafka
官網介紹:
- ApacheKafka®是一個分佈式流媒體平臺。這到底是什麼意思呢?
我們認爲流媒體平臺具有三個關鍵功能:
1. 它可以讓你發佈和訂閱記錄流。在這方面,它類似於消息隊列或企業消息傳遞系統。
2. 它允許您以容錯方式存儲記錄流。
3. 它可以讓您在發生記錄時處理記錄流。
幾個概念:
- Kafka作爲一個或多個服務器上的集羣運行。
- Kafka集羣以稱爲主題的類別存儲記錄流。
- 每個記錄由一個鍵,一個值和一個時間戳組成。
詳細介紹 :######
下載安裝
官網下載地址:http://mirror.bit.edu.cn/apache/kafka/1.0.0/kafka_2.11-1.0.0.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_2.11-1.0.0/config 目錄下的server.properties文件中
默認端口爲9092
操作kafka:
創建名爲“test”的topic
./bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
創建生產者(生產消息):
./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集羣
創建配置文件
cp config/server.properties config/server2.properties
cp config/server.properties config/server3.properties
設置以下屬性
config/server2.properties:
broker.id=1
listeners=PLAINTEXT://:9093
log.dir=/tmp/kafka-logs-1
config/server3.properties:
broker.id=2
listeners=PLAINTEXT://:9094
log.dir=/tmp/kafka-logs-2
啓動
./bin/kafka-server-start.sh config/server2.properties &
.....
./bin/kafka-server-start.sh config/server3.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), 正在同步的備份, 表示可用的活着的節點
消息測試
- 創建生產者
./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》。一起交流分享,歡迎投稿。