一:概念
kafka是乙個分布式的訊息佇列,相當於我們生活中的快遞櫃,快遞點,快遞員將快遞放到快遞櫃中,收件人去取,把快遞(訊息)的入櫃(入隊)和處理進行解耦,使得雙方以自己合適的時間和頻率處理快遞,此外快遞櫃也起著削峰填谷的作用,雙十一,一車快遞進入乙個快遞點,收件一時間無法領取掉自己的快遞,可以暫存到快遞點,收件人有時間在去取。
kafka對訊息儲存時根據topic進行歸類,傳送訊息者稱為producer,訊息接受者稱為consumer,此外kafka集群有多個kafka例項組成,每個例項(server)稱為broker。
其他知識點可檢視
部落格kafka有趣的介紹:
使用kafka自帶的zookeeper集群啟動
tar zxvf kafka_2.11-2.2.1.tgz -c /opt/kafka
(2)啟動自帶的zookeeper(2181埠)
cd /opt/kafka/kafka_2.11-2.2.1/
bin/zookeeper-server-start.sh config/zookeeper.properties
(3)啟動kafka(9092埠)
bin/kafka-server-start.sh -daemon config/server.properties (-daemon表示守護程序)
lsof -i :9092 (列出9092埠是否在使用)
(4)建立topic
bin/kafka-topics.sh --create --zookeeper localhost:2181 --partitions 2 --replication-factor 3 --topic first
其中:--partitions 2 //建立2個分割槽
--replications-factor 3 //副本數,leader在副本中
--topic //主題為first
檢視topic列表
bin/kafka-topics.sh --list --zookeeper localhost:2181 first
檢視topic詳情描述
bin/kafka-topics.sh --zookeeper localhost:2181 --describe topic first
(5)建立生產者
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic first
(6) 建立消費者
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic first --from-beginning (--from-beginning表示從開始topic起點開始消費)
注:舊版本中--bootstrap-server是 --zookeeper (消費者的offset之前的版本存放在zookeeper中,新版本offset存放在broker集群的topic中)
刪除topic
bin/kafka-topics.sh --delete --zookeeper localhost:2181 --topic first
停止kafka
bin/kafka-server-stop.sh stop
啟動指定配置檔案的消費者
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic first --from-beginning --consumer.config config/consumer.properties
學習筆記 Kafka
kafka kafka把資料往磁碟上寫,但是在磁碟上存它的讀寫速度比記憶體快,這個依賴於預讀和後寫功能,但是這個預讀和後寫必須是按照順序的方式,若沒有順序的方式優化的話,不存在什麼預讀和後寫。特點 訊息持久化 能落到磁碟 通過o 1 的磁碟資料結構提供資料的持久化 高吞吐量 分布式 擴充套件能力強 ...
Kafka學習筆記
1.1簡介 apache kafka 是分布式發布 訂閱訊息系統 訊息中介軟體 它最初由 linkedin 公司開發,之後成為 apache 專案的一部分。kafka 是一種快速 可擴充套件的 設計內在就是分布式的,分割槽的和可複製的提交日誌服務。apache kafka 與傳統訊息系統相比,有以下...
kafka學習筆記
1.1 kafka的特性 controller在zookeeper註冊watch zookeeper管理kakfabroker集群。所有的kafkabroker節點一起去zookeeper上註冊乙個臨時節點,只有乙個能成功,成功註冊的節點稱之為 kafkabrokercontroller,其餘的稱之...