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