1. 程式人生 > >老王帶你走過 Kafka 入門教程

老王帶你走過 Kafka 入門教程

beginning top tro 定義 broker 修改 提交 官網 消息流

技術分享圖片

Apache Kafka是分布式發布-訂閱消息系統,在 kafka官網上對 kafka 的定義:一個分布式發布-訂閱消息傳遞系統。 它最初由LinkedIn公司開發.

Linkedin於2010年貢獻給了Apache基金會並成為頂級開源項目。Kafka是一種快速、可擴展的、設計內在就是分布式的,分區的和可復制的提交日誌服務。

技術分享圖片

主要構建如下:

1、話題(Topic):是特定類型的消息流。消息是字節的有效負載(Payload),話題是消息的分類名或種子(Feed)名;

2、生產者(Producer):是能夠發布消息到話題的任何對象;

3、服務代理(Broker):已發布的消息保存在一組服務器中,它們被稱為代理(Broker)或Kafka集群;

4、消費者(Consumer):可以訂閱一個或多個話題,並從Broker拉數據,從而消費這些已發布的消息;

kfaka最簡單的生產者與消費者相關操作:

pom.xml引入依賴jar包

技術分享圖片

生產者:

技術分享圖片

消費者:

技術分享圖片

修改配置文件相關配置

啟動 zookeeper 服務
bin/zookeeper-server-start.sh config/zookeeper.properties

啟動 kafka Broker 服務
bin/kafka-server-start.sh config/server.properties

創建一個單分區單副本的 topic: topicLog
bin/kafka-topics.sh --create --zookeeper localhost:26005 --replication-factor 1 --partitions 1 --topic topicLog

Created topic "topicLog".

註:記得設置jdk
export JAVA_HOME=/home/tomcat/jdk-1.8
export PATH=$JAVA_HOME/bin:$PATH

bin/kafka-console-producer.sh --broker-list 172.17.0.8:26006 --topic topicLog
bin/kafka-console-consumer.sh --zookeeper 172.17.0.8:26005 --topic topicLog --from-beginning


bin/kafka-topics.sh --zookeeper localhost:26005 --delete --topic topicLog


但是運行命令後,topic並沒有被刪除,使用 “bin/kafka-topics.sh –list –zookeeper localhost:26005”

仍然可以查到。此時我們需要修改config/server.properties文件中的 “delete.topic.enable=true”

來打開這個功能。此時我們再執行上面的 –delete 操作,即可刪除topic了。

綜述:我們現在項目中均是以kafka作為生產者。由storm 或者logstash去消費相關消息。從而實現我們的相關的業務分析。數據分析。

—————————————————————————————————

推薦閱讀:

ElasticSearch(head)

6 個重構方法可幫你提升 80% 的代碼質量

filebeat+kafka+strom+logstash+es 輿情采集系統

大數據核心技術

老王帶你走過 Kafka 入門教程