Apache Kafka是分散式發佈-訂閱消息系統,在 kafka官網上對 kafka 的定義:一個分散式發佈-訂閱消息傳遞系統。 它最初由LinkedIn公司開發. Linkedin於2010年貢獻給了Apache基金會併成為頂級開源項目。Kafka是一種快速、可擴展的、設計內在就是分散式的,分區 ...
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去消費相關消息。從而實現我們的相關的業務分析。數據分析。
—————————————————————————————————
推薦閱讀:
filebeat+kafka+strom+logstash+es 輿情採集系統