kafka是乙個基於發布/訂閱模式的分布式訊息佇列。
(1)點對點模式(一對一,消費者主動拉取資料,訊息收到後訊息清除)
(2)發布/訂閱模式(一對多,消費者消費資料之後不會清除訊息)
kafka是屬於發布/訂閱模式的拉取模式
發布/訂閱有兩種資料消費模式:push & pull 模式(
1)producer :訊息生產者,就是向 kafka broker 發訊息的客戶端
2)consumer :訊息消費者,向 kafka broker 取訊息的客戶端
3)consumer group (cg):消費者組,由多個 consumer 組成。消費者組內每個消費者負責消費不同分割槽的資料,乙個分割槽只能由乙個組內消費者消費;消費者組之間互不影響。所有的消費者都屬於某個消費者組,即消費者組是邏輯上的乙個訂閱者。
4)broker :一台 kafka 伺服器就是乙個 broker。乙個集群由多個 broker 組成。乙個 broker可以容納多個 topic。
5)topic :可以理解為乙個佇列,生產者和消費者面向的都是乙個 topic
6)partition:為了實現擴充套件性,乙個非常大的 topic 可以分布到多個 broker(即伺服器)上,乙個 topic 可以分為多個 partition,每個 partition 是乙個有序的佇列
7)replica:副本,為保證集群中的某個節點發生故障時,該節點上的 partition 資料不丟失,且 kafka 仍然能夠繼續工作,kafka 提供了副本機制,乙個 topic 的每個分割槽都有若干個副本,乙個 leader 和若干個 follower。
8)leader:每個分割槽多個副本的「主」,生產者傳送資料的物件,以及消費者消費資料的物件都是 leader。
9)follower:每個分割槽多個副本中的「從」,實時從 leader 中同步資料,保持和 leader 資料的同步。leader 發生故障時,某個 follower 會成為新的 leader。
(1)檢視當前伺服器中的所有 topic
bin/kafka-topics.sh --zookeeper master:2181 --list
(2)建立 topic
bin/kafka-topics.sh --zookeeper master:2181 --create --replication-factor 3 --partitions 1 -topic test
注釋:--topic 定義 topic 名
--replication-factor 定義副本數
--partitions 定義分割槽數
(3)刪除 topic
bin/kafka-topics.sh --zookeeper master:2181 --delete --topic test
需要 server.properties 中設定 delete.topic.enable=true 否則只是標記刪除
(4)傳送訊息
bin/kafka-console-producer.sh --broker-list master:9092 --topic test
(5)消費訊息
bin/kafka-console-consumer.sh --bootstrap-server master:9092 --topic test
消費所有資料
bin/kafka-console-consumer.sh --bootstrap-server master:9092 --from-beginning --topic test
(6)檢視topic的詳情
bin/kafka-topics.sh --zookeeper master:2181 --describe --topic test
(7)修改分割槽數
bin/kafka-topics.sh --zookeeper master:2181 --alter --topic test--partitions 6
研磨Hadoop之HDFS初探
hdfs是乙個分布式檔案系統,通過目錄樹來定位檔案。hdfs的設計適合一次寫入,多次讀取的場景,且不支援檔案的修改。1 優點 1 高容錯性 資料自動儲存多個副本,通過增加副本提高容錯性。某乙個副本丟失,可以自動恢復 2 適合大資料處理 資料規模 可以處理gb tb 甚至pb的資料 檔案規模 處理百萬...
CoAP協議之初探(一)
coap 是乙個基於 rest 模型的網路傳輸協議。主要用於輕量級 m2m 通訊。由於物聯網中的很多裝置都是資源受限型的,即只有少量的記憶體空間和有限的計算能力,所以傳統的 http 協議應用在物聯網上就顯得過於龐大而不適用,coap 應運而生。本文介紹物聯網平台支援的coap協議規範 1.概念 2...
C 中文分詞之初探
簡單介紹一下分詞的技術相關的演算法以及對此幾種演算法的比較,最後用其中一種演算法實現乙個中文分詞的小程式。中文分詞的演算法 中文分詞技術發展到今天概括起來可以歸為三類 基於匹配的分詞 基於統計的分詞和基於理解的分詞。a.基於匹配的分詞方法 由於該分詞方法自動化程度較高,因此又常被稱為機械分詞法。該方...