今天繼續學習kafka
kafka命令
1)檢視當前伺服器中的所有topic
[atguigu@hadoop102 kafka]$ bin/kafka-topics.sh --list --zookeeper hadoop102:2181
2)建立topic
[atguigu@hadoop102 kafka]$ bin/kafka-topics.sh --create --zookeeper hadoop102:2181 –
replication-factor 3 --partitions 1 --topic first
選項說明:
–topic 定義topic名
–replication-factor 定義副本數
–partitions 定義分割槽數
3) 刪除topic
[atguigu@hadoop102 kafka]$ bin/kafka-topics.sh --delete --zookeeper hadoop102:2181 --topic
first
需要server.properties中設定delete.topic.enable=true否則只是標記刪除或者直接重啟。
4)傳送訊息
[atguigu@hadoop102 kafka]$ bin/kafka-console-producer.sh --broker-list hadoop102:9092 --topic
first
5)消費訊息
[atguigu@hadoop103 kafka]$ bin/kafka-console-consumer.sh --zookeeper hadoop102:2181 –
from-beginning --topic first
6)檢視某個topic的詳情
[atguigu@hadoop102 kafka]$ bin/kafka-topics.sh --topic first --describe --zookeeper
hadoop102:2181
消費者組
hello world
wangan消費者是以consumer group消費者組的方式工作,由乙個或者多個消費者組成乙個組,共同消費乙個
topic。每個分割槽在同一時間只能由group中的乙個消費者讀取,但是多個group可以同時消費這個
partition。在圖中,有乙個由三個消費者組成的group,有乙個消費者讀取主題中的兩個分割槽,另外兩
個分別讀取乙個分割槽。某個消費者讀取某個分割槽,也可以叫做某個消費者是某個分割槽的擁有者。
在這種情況下,消費者可以通過水平擴充套件的方式同時讀取大量的訊息。另外,如果乙個消費者失敗了,
那麼其他的group成員會自動負載均衡讀取之前失敗的消費者讀取的分割槽。
消費方式
consumer採用pull(拉)模式從broker中讀取資料。
push(推)模式很難適應消費速率不同的消費者,因為訊息傳送速率是由broker決定的。它的目標是
盡可能以最快速度傳遞訊息,但是這樣很容易造成consumer來不及處理訊息,典型的表現就是拒絕服
務以及網路擁塞。而pull模式則可以根據consumer的消費能力以適當的速率消費訊息。
對於kafka而言,pull模式更合適,它可簡化broker的設計,consumer可自主控制消費訊息的速率,同
時consumer可以自己控制消費方式——即可批量消費也可逐條消費,同時還能選擇不同的提交方式從
而實現不同的傳輸語義。
消費者組案例
1)需求:測試同乙個消費者組中的消費者,同一時刻只能有乙個消費者消費。
2)案例實操
(1)在hadoop102、hadoop103上修改/opt/module/kafka/config/consumer.properties配置文
件中的group.id屬性為任意組名。
[wangan@hadoop103 config]$ vi consumer.properties
group.id=wangan
(2)在hadoop102、hadoop103上分別啟動消費者
bin/kafka-console-consumer.sh --zookeeper hadoop102:2181 --topic first --consumer.config
config/consumer.properties
bin/kafka-console-consumer.sh --zookeeper hadoop102:2181 --topic first --consumer.config
config/consumer.properties
(3)在hadoop104上啟動生產者
bin/kafka-console-producer.sh --broker-list hadoop102:9092 --topic first >hello world
(4)檢視hadoop102和hadoop103的接收者。
同一時刻只有乙個消費者接收到訊息。
程式設計師節日快樂
節日快樂!今天這個部落格沒有技術內容,因為我最近在找工作,新的技術暫時沒有時間研究了。簡單談談這幾年的工作經歷,第乙份工作是我印象最深刻的一家公司,包括同事,雖然現在離職了,但是挺想念那個公司。然後發現畢業之後很多事情是身不由己的,不是我想怎樣就能怎樣,但是畢業之後我的朋友選擇就可以按照自己的內心,...
祝所有程式設計師1024節日快樂呀
1024對於挨踢男女來說是個重要的數字,今天恰逢10月24日,不發php 了,輕鬆一下,在網上蒐集挑選和改編了幾個笑話,為廣大程式設計師的辛苦 努力和投入點讚。1.某php程式設計師去餐廳吃飯,在選單上寫了 魚香茄子 花生公尺想了想自己可能吃不完,決定不要魚香茄子了,於是選單上變成了 魚香茄子 花生...
程式設計師們節日快樂!你真的懂啥是1024嗎?
今天就是一年一度的1024節了!程式設計師們,1024快樂。public class hello1024 private static void is1024 string date 好吧並沒有這個節,不過這個日子該慶祝啥,相信在座諸位很多人都懂的 當然是慶祝二進位制了!1024是乙個整數嘛。它等於...