Kafka學習總結

2022-09-07 09:57:09 字數 3498 閱讀 5297

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 --list
2)建立

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 \

--delete --topic first

需要server.proper

ties中設定

delete.topic.enable=true

否則只是標記刪除。

4)傳送訊息

[atguigu@hadoop102 kafka]$ bin/kafka-console-producer.sh \

--broker-list hadoop102:9092 --topic first

>hello world

>atguigu atguigu

5)消費訊息

[atguigu@hadoop103 kafka]$ bin/kafka-console-consumer.sh \

--bootstrap-server hadoop102:9092 --from-beginning --topic first

--from-beginning:會把主題中以往所有的資料都讀取出來。

6)檢視某個

topic

的詳情

[atguigu@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181

\--describe --topic first

7)修改分割槽數

[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...