一、Kafka概述 1.Kafka是一個分散式流媒體平臺,它有三個關鍵功能: (1)發佈和訂閱記錄流,類似於消息隊列或企業消息傳遞系統; (2)以容錯的持久方式存儲記錄流; (3)記錄發送時處理流。 2.Kafka通常應用的兩大類應用 (1)構建在系統或應用程式之間的可靠獲取數據的實時流數據管道; ...
一、Kafka概述
1.Kafka是一個分散式流媒體平臺,它有三個關鍵功能:
(1)發佈和訂閱記錄流,類似於消息隊列或企業消息傳遞系統;
(2)以容錯的持久方式存儲記錄流;
(3)記錄發送時處理流。
2.Kafka通常應用的兩大類應用
(1)構建在系統或應用程式之間的可靠獲取數據的實時流數據管道;
(2)構建轉換或響應數據流的實施流應用程式。
3.Kafka中的角色
發送消息:Producer
接收消息:Consumer
後臺系統向kafka集群發送消息,然後kafka集群向用戶分發消息
4.為什麼要用消息隊列
(1)解耦:可以自由處理和設置接收及發送端的配置,
是一個介面的約束,可以避免出現一些問題
(2)拓展性:可以增加處理過程
(3)靈活:面對訪問量增長到峰值時,不會因為超負荷請求而完全癱瘓
(4)可恢復:一部分組件失效了,不會影響整個系統,並可以恢復
(5)緩存:控制數據量經過系統的速度
(6)順序保證:保證消息數據按照有序處理
(7)非同步通信:
提供了非同步處理的機制,允許用戶把消息當到隊列中但不立即處理
5.Kafka架構設計
kafka依賴於zookeeper,用zk保存元數據信息(保存kafka集群節點狀態信息和消費者當前消費信息)。所以要先搭建zookeeper集群,在搭建kafka集群。
在kafka中,用來處理和存儲生產者生成的消息的是broker,broker將生產者生成的消息以topic分類到不同分區partition,然後根據消費者訂閱的主題對消費者發送消息。
二、Kafka的安裝部署
1.在下載安裝包,本人使用的是2.11-2.0.0,上次到linux,解壓
2.在kafka路徑下創建其日誌文件夾
mkdir logs
3.進入config目錄,進入server.properties文件修改配置信息
broker.id=0
delete.topic.enable=true
log.dirs=/root/hd/kafka/logs
zokeeper.connect=hd1-1:2181,hd1-2:2181,hd1-3:2181
保存並退出;
4.將修改好的kafka文件夾發送到其他集群機器,並修改server.properties中的broker.id為1,2,3...
scp -r /root/hd/kafka hd09-01:/root/hd/
5.啟動zookeeper集群,再啟動kafka集群
進入kafka目錄下輸入命令:
bin/kafka-server-start.sh config/server/properties
啟動完成!!