kafka詳解三:開發Kafka應用
問題導讀
1.Kafka系統由什麼組成?
2.Kafka中和producer相關的API是什麼?
一、整體看一下Kafka
我們知道,Kafka系統有三大元件:Producer、Consumer、broker 。
file:///C:/Users/ADMINI~1/AppData/Local/Temp/enhtmlclip/Image.png
producers 生產(produce)訊息(message)並推(push)送給brokers,consumers從brokers把訊息提取(pull)出來消費(consume)。
二、開發一個Producer應用
Producers用來生產訊息並把產生的訊息推送到Kafka的Broker。Producers可以是各種應用,比如web應用,伺服器端應用,代理應用以及log系統等等。當然,Producers現在有各種語言的實現比如Java、C、Python等。
我們先看一下Producer在Kafka中的角色:
file:///C:/Users/ADMINI~1/AppData/Local/Temp/enhtmlclip/Image(1).png
2.1.kafka Producer 的 API
Kafka中和producer相關的API有三個類
2.2下面我們就寫一個最簡單的Producer:產生一條訊息並推送給broker
三、開發一個consumer應用
Consumer是用來消費Producer產生的訊息的,當然一個Consumer可以是各種應用,如可以是一個實時的分析系統,也可以是一個資料倉儲或者是一個基於釋出訂閱模式的解決方案等。Consumer端同樣有多種語言的實現,如Java、C、Python等。
我們看一下Consumer在Kafka中的角色:
3.1.kafka Producer 的 API
Kafka和Producer稍微有些不同,它提供了兩種型別的API
由於是第一個應用,我們這部分使用high-level API,它的特點每消費一個message自動移動offset值到下一個message,關於offset在後面的部分會單獨介紹。與Producer類似,和Consumer相關的有三個主要的類:
3.2下面我們就寫一個最簡單的Consumer:從broker中消費一個訊息
四、執行檢視結果
先啟動伺服器端相關程式:
再執行我們寫的應用
1.Kafka系統由什麼組成?
2.Kafka中和producer相關的API是什麼?
一、整體看一下Kafka
我們知道,Kafka系統有三大元件:Producer、Consumer、broker 。
file:///C:/Users/ADMINI~1/AppData/Local/Temp/enhtmlclip/Image.png
producers 生產(produce)訊息(message)並推(push)送給brokers,consumers從brokers把訊息提取(pull)出來消費(consume)。
二、開發一個Producer應用
Producers用來生產訊息並把產生的訊息推送到Kafka的Broker。Producers可以是各種應用,比如web應用,伺服器端應用,代理應用以及log系統等等。當然,Producers現在有各種語言的實現比如Java、C、Python等。
我們先看一下Producer在Kafka中的角色:
file:///C:/Users/ADMINI~1/AppData/Local/Temp/enhtmlclip/Image(1).png
2.1.kafka Producer 的 API
Kafka中和producer相關的API有三個類
- Producer:最主要的類,用來建立和推送訊息
- KeyedMessage:定義要傳送的訊息物件,比如定義傳送給哪個topic,partition key和傳送的內容等。
-
ProducerConfig:配置Producer,比如定義要連線的brokers、partition class、serializer class、partition key等
2.2下面我們就寫一個最簡單的Producer:產生一條訊息並推送給broker
三、開發一個consumer應用
Consumer是用來消費Producer產生的訊息的,當然一個Consumer可以是各種應用,如可以是一個實時的分析系統,也可以是一個資料倉儲或者是一個基於釋出訂閱模式的解決方案等。Consumer端同樣有多種語言的實現,如Java、C、Python等。
我們看一下Consumer在Kafka中的角色:
3.1.kafka Producer 的 API
Kafka和Producer稍微有些不同,它提供了兩種型別的API
- high-level consumer API:提供了對底層API的抽象,使用起來比較簡單
-
simple consumer API:允許重寫底層API的實現,提供了更多的控制權,當然使用起來也複雜一些
由於是第一個應用,我們這部分使用high-level API,它的特點每消費一個message自動移動offset值到下一個message,關於offset在後面的部分會單獨介紹。與Producer類似,和Consumer相關的有三個主要的類:
- KafkaStream:這裡面返回的就是Producer生產的訊息
- ConsumerConfig:定義要連線zookeeper的一些配置資訊(Kafka通過zookeeper均衡壓力,具體請查閱見面幾篇文章),比如定義zookeeper的URL、group id、連線zookeeper過期時間等。
-
ConsumerConnector:負責和zookeeper進行連線等工作
3.2下面我們就寫一個最簡單的Consumer:從broker中消費一個訊息
四、執行檢視結果
先啟動伺服器端相關程式:
- 執行zookeeper:[root@localhost kafka-0.8]# bin/zookeeper-server-start.sh config/zookeeper.properties
-
執行Kafkabroker:[root@localhost kafka-0.8]# bin/kafka-server-start.sh config/server.properties
再執行我們寫的應用
- 執行剛才寫的SimpleHLConsumer 類的main函式,等待生產者生產訊息
-
執行SimpleProducer的main函式,生產訊息並push到broker
結果:執行完SimpleProducer後在SimpleHLConsumer的控制檯即可看到生產者生產的訊息:“send a message to broker”。
轉載: http://www.aboutyun.com/thread-11115-1-1.html
相關文章
- 詳解Kafka ProducerKafka
- 「Kafka應用」名詞概念解釋Kafka
- Kafka核心元件詳解Kafka元件
- kafka核心架構詳解Kafka架構
- alpakka-kafka(7)-kafka應用案例,消費模式Kafka模式
- Kafka高效能揭祕:sequence IO、PageCache、SendFile的應用詳解Kafka
- 「Kafka應用」消費者Kafka
- 「Kafka應用」副本同步策略Kafka
- Kafka實戰寶典:Kafka的控制器controller詳解KafkaController
- Kafka應用實戰——Kafka安裝及簡單使用Kafka
- alpakka-kafka(6)-kafka應用案例,使用者介面Kafka
- 一文詳解Kafka APIKafkaAPI
- Kafka學習(三)-------- Kafka核心之CosumerKafka
- Kafka流處理內幕詳解Kafka
- alpakka-kafka(9)-kafka在分散式運算中的應用Kafka分散式
- alpakka-kafka(5)-kafka叢集配置與分散式應用部署Kafka分散式
- 詳細解析kafka之kafka分割槽和副本Kafka
- Kafka結合SparkStreaming開發KafkaSpark
- spring-kafka中ContainerProperties.AckMode詳解SpringKafkaAI
- kafka的原理及叢集部署詳解Kafka
- Kafka詳細介紹Kafka
- Kafka實戰(三) - Kafka的自我修養與定位Kafka
- Kafka 入門(三)--為什麼 Kafka 依賴 ZooKeeper?Kafka
- Kafka Streams開發入門(1)Kafka
- Apache Kafka在沃爾瑪的應用ApacheKafka
- Kafka應用實踐與生態整合Kafka
- 如何在Rails應用程式中使用Kafka?AIKafka
- 用 Vagrant 一鍵部署開發環境 kafka 叢集開發環境Kafka
- kafka報錯解決 kafka.errors.NoBrokersAvailable: NoBrokersAvailableKafkaErrorAI
- 使用Confluent Kafka,KSQL,Spring Boot和分散式SQL開發物聯網應用程式KafkaSQLSpring Boot分散式
- Logstash讀取Kafka資料寫入HDFS詳解Kafka
- Kafka與ActiveMQ的區別與聯絡詳解KafkaMQ
- 【轉】kafka-檔案儲存機制詳解Kafka
- 詳解Kafka與ActiveMQ的區別與聯絡!KafkaMQ
- terraform-provider-kafka:用於管理Kafka主題和ACLORMIDEKafka
- kafka-ngx_kafka_moduleKafka
- kafka程式碼解讀Kafka
- Kafka從入門到放棄(三)—— 詳說消費者Kafka
- 超詳細kafka教程來啦Kafka