2023年07月30日18:22:56 rhwayfunn 閱讀數:13818標籤: kafka 更多
個人分類: 分布式系統
為了更為直觀展示卡夫卡的訊息生產消費的過程,我會從基於控制台和基於應用兩個方面介紹使用例項.kafka是乙個分布式流處理平台,具體來說有三層含義:
它允許發布和訂閱記錄流,類似於訊息佇列或企業訊息傳遞系統。
它可以容錯的方式儲存記錄流。
它可以處理記錄發生時的流。
由於主要介紹如何使用卡夫卡快速構建生產者消費者例項,所以不會涉及卡夫卡內部的原理乙個基於卡夫卡的生產者消費者過程通常是這樣的(來自官網):
cd kafka_2.11-0.11.0.0
tar -zxvf kafka_2.11-0.11.0.0.tgz -c pathtoinstall
啟動卡夫卡:
bin/kafka-server-start.sh config/server.properties
建立主題
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
生產者傳送訊息
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
在控制台輸入要傳送的訊息:
this is a message
this is another message
消費者接收訊息
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
輸入命令後可以看到控制台輸出了剛才的訊息:
this is a message
this is another message
生產者:
public class ******kafkaproducer
}
消費者:
public class ******kafkaconsumer }}
以上的程式只是單生產者單消費者的場景,所謂集群消費就是同乙個主題的消費可能有多個消費者消費,也稱廣播消費。集群消費只一種多執行緒或者多機器的消費方式。
要實現集群消費只需要為每個消費者指定不同的group.id
就可以。由於**比較簡單就不貼了。
測試發現,當為了兩個消費者(這裡是兩個程序)不同指定的group.id
後,生產者傳送的訊息兩個消費者都能接受到,這很顯然,集群消費嘛。為設定兩個消費者的group.id
為同乙個的時候,只有乙個消費者能消費者到。也就是說,卡夫卡的訊息只能由組中的單個使用者讀取。
Kafka消費者生產者例項
它允許發布和訂閱記錄流,類似於訊息佇列或企業訊息傳遞系統。它可以容錯的方式儲存記錄流。它可以處理記錄發生時的流。由於主要介紹如何使用kafka快速構建生產者消費者例項,所以不會涉及kafka內部的原理。乙個基於kafka的生產者消費者過程通常是這樣的 來自官網 cd kafka 2.11 0.11....
生產者 消費者例項
package com.rx.thread.produce.consume public class product public void setid string id public product string id public string tostring public static v...
Kafka命令 生產者 消費者
檢視當前伺服器中的所有 topic bin kafka topics.sh list zookeeper zk01 2181 建立 topic bin kafka topics.sh create zookeeper zk01 2181 replication factor 1 partitions...