kafka是乙個分布式的基於發布
/訂閱模式的訊息佇列,主要應用於大資料實時處理領域。
1.2.1傳統訊息佇列的應用場景
1.2.2訊息佇列的兩種模式
(1)點對點模式(一對一,消費者主動拉取資料,訊息收到後訊息清除)
訊息生產者生產訊息傳送到queue中,然後訊息消費者從queue中取出並且消費訊息。
訊息被消費以後,queue中不再有儲存,所以訊息消費者不可能消費到已經被消費的訊息。
queue
支援存在多個消費者,但是對乙個訊息而言,只會有乙個消費者可以消費。
(2)發布
/訂閱模式(一對多,消費者消費資料之後不會清除訊息)
訊息生產者(發布)將訊息發布到topic中,同時有多個訊息消費者(訂閱)消費該訊息。和點對點方式不同,發布到
topic
的訊息會被所有訂閱者消費。
:訊息生產者,就是向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
會成為新的
follower
。1)檢視當前伺服器中的所有
topic
[atguigu@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181 --list2)建立
topic
[atguigu@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181選項說明:\--create --replication-factor 3 --partitions 1 --topic first
--topic 定義topic名
--replication-factor 定義副本數
--partitions 定義分割槽數
3)刪除
topic
[atguigu@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181 \需要server.proper--delete --topic first
ties中設定
delete.topic.enable=true
否則只是標記刪除。
4)傳送訊息
[atguigu@hadoop102 kafka]$ bin/kafka-console-producer.sh \5)消費訊息--broker-list hadoop102:9092 --topic first
>hello world
>atguigu atguigu
[atguigu@hadoop103 kafka]$ bin/kafka-console-consumer.sh \--from-beginning:會把主題中以往所有的資料都讀取出來。--bootstrap-server hadoop102:9092 --from-beginning --topic first
6)檢視某個
topic
的詳情
[atguigu@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:21817)修改分割槽數\--describe --topic first
[atguigu@hadoop102 kafka]$bin/kafka-topics.sh --zookeeper hadoop102:2181 --alter --topic first --partitions 6待續
kafka學習總結之kafka核心
1 kafka核心元件 1 replication 副本 partition 分割槽 乙個topic可以有多個副本,副本的數量決定了有多少個broker存放寫入的資料 副本是以partition為單位的,存放副本即是備份若干個partition,但是只有乙個partition被選為leader用於讀...
kafka知識總結
1 kafka是什麼 類jms訊息佇列,結合jms中的兩種模式,可以有多個消費者主動拉取資料,在jms中只有點對點模式才有消費者主動拉取資料。kafka是乙個生產 消費模型。producer 生產者,只負責資料生產,生產者的 可以整合到任務系統中。資料的分發策略由producer決定,預設是defa...
Kafka核心總結
乙個kafka的message由乙個固定長度的header和乙個變長的訊息體body組成。header部分由乙個位元組的magic 檔案格式 和四個位元組的crc32 用於判斷body訊息體是否正常 構成。當magic的值為1時,會在magic和crc32之間多乙個位元組的資料 attributes...