kafka應用講解及應用場景(三)

一、 驗證

1、進入bin目錄

cd bin

2、ls查看腳本

會發現下面有很多腳本文件,由於我是要創建一個topic所有直接打開kafka-topics.sh腳本查看命令

 

 

 打開腳本後發現裡面有很多命令,裡面命令都有提示,平時操作不知道怎麼寫時可以查看

 

 

 由於我要創建的topic要設置分區和副本,所以需要的命令有下面這五個

    • –create是創建命令
    • –topic是創建topic的名字
    • –bootstrap-server指連接到哪個節點
    • –partitions指定多少個分區
    • –replication-factor副本

3、創建命令

 

./bin/kafka-topics.sh --create --topic test --bootstrap-server 192.168.32.122:9092 --partitions 1 --replication-factor 1 

 

裡面日誌非常詳細可以看下,裡面寫了副本名稱例如set(test-0)還有他存放位置及刷新時間

 

 

 4、查看資訊

cd /root/kafka/kafka-logs

可以看到裡面有個test-0資訊

 

 

 進入test-0可以看到裡面詳細資訊,但裡面消息是空的

 

 

 5、查看topic資訊命令

./bin/kafka-topics.sh --describe --topic test --bootstrap-server 192.168.32.122:9092
 

 

 

 6、發送消息

進入ls bin/可以看到裡面的發送消息和消費消息的腳本,所以平時如果需要什麼命令可以自己進去查看

 

 

 發送消息

 

 

 

./bin/kafka-console-producer.sh --bootstrap-server 192.168.32.122:9092 --topic test
 

7、消費消息

另起一台伺服器,發送命令

./bin/kafka-console-consumer.sh --bootstrap-server 192.168.32.122:9092 --topic test --from-beginning 

這樣就可以一邊發消息一邊消費了

 

 

 

 二、kafka應用場景

2.1 消息

kafka 更好的替換傳統的消息系統,消息系統被用於各種場景(解耦數據生產者,快取未處理的消息),與大多數消息系統比較,kafka 有更好的吞吐量,內置分區,副本和故障轉移等功能,這有利於處理大規模的消息。

根據官方的經驗,通常消息傳遞使用較低的吞吐量,但可能要求較低的端到端延遲,kafka 提供強大的持久性來滿足這一要求。在這方面,Kafka 可以與傳統的消息傳遞系統(ActiveMQ 和 RabbitMQ)相媲美。但是RabbitMQ可以順序消費但kafka很難實現。

2.2 跟蹤網站活動

kafka 的最初始作用就是是將用戶活動跟蹤管道重建為一組實時發布-訂閱源。 把網站活動(瀏覽網頁、搜索或其他的用戶操作)發布到中心 topic,其中每個活動類型有一個 topic。 這些訂閱源提供一系列用例,包括實時處理、實時監視、對載入到Hadoop或離線數據倉庫系統的數據進行離線處理和報告等。每個用戶瀏覽網頁時都生成了許多活動資訊,因此活動跟蹤的數據量通常非常大。這就非常使用使用 kafka。

2.3 日誌聚合

許多人使用 kafka來替代日誌聚合解決方案。日誌聚合系統通常從伺服器收集物理日誌文件,並將其置於一個中心系統(可能是文件伺服器或HDFS)進行處理。kafka 從這些日誌文件中提取資訊,並將其抽象為一個更加清晰的消息流。 這樣可以實現更低的延遲處理且易於支援多個數據源及分散式數據的消耗。與 Scribe 或 Flume 等以日誌為中心的系統相比,Kafka具備同樣出色的性能、更強的耐用性(因為複製功能)和更低的端到端延遲。

2.4 流處理

0.10.0.0開始,kafka 支援輕量,但功能強大的流處理。kafka消息處理包含多個階段。其中原始輸入數據是從kafka主題消費的,然後匯總,豐富,或者以其他的方式處理轉化為新主題以供進一步消費或後續處理。例如,一個推薦新聞文章,文章內容可能從「articles」主題獲取;然後進一步處理內容,得到一個處理後的新內容,最後推薦給用戶。這種處理是基於單個主題的實時數據流。除了Kafka Streams,還有 Apache Storm 和 Apache Samza 也是不錯的流處理框架。

2.5 事件採集

Event sourcing是一種應用程式設計風格,按時間來記錄狀態的更改。 Kafka 可以存儲非常多的日誌數據,為基於 event sourcing 的應用程式提供強有力的支援。

2.6 提交日誌

kafka 可以從外部為分散式系統提供日誌提交功能。 日誌有助於記錄節點和行為間的數據,採用重新同步機制可以從失敗節點恢複數據。 Kafka的日誌壓縮 功能支援這一用法。 這一點與Apache BookKeeper 項目類似。

 

Tags: