回覆列表
  • 1 # 獨山海鈴蘭面板管理

    我曾經用過activemq,ons再到現在的kafka訊息中介軟體,發現kafka是一款接近完美的訊息中介軟體!

    學習一款技術,肯定是先從官方文件開始!

    從官方文件可以初窺堂奧!

    kafka是一個分散式流處理平臺,意味著什麼呢?

    三個關鍵指標:

    像訊息佇列一樣,釋出和訂閱流式記錄!

    以容錯方式儲存流式的資料!

    儲存流式處理過程(日誌可重複讀取,無限期保留)

    在兩大類應用中使用:

    構建系統間實時的流式資料傳輸!

    構建實時的流式資料轉換和響應!

    幾大要素:

    多伺服器執行,跨越多資料中心,支援分片,多副本,超大吞吐量!

    kafka叢集儲存流式資料!

    儲存key-value形式資料和自帶時間戳!

    從官方文件可以看出,kafka自帶分散式屬性,流式處理,可支援高容錯率的儲存和資料傳輸,可快速實時的響應!生產,傳輸,消費日誌被儲存,可以無限讀取!

    技術永遠是為業務服務的,有了這麼一款優良的訊息中介軟體,我們怎麼實現一套訊息中介軟體的架構呢?

    使用場景:生產者和消費者之間解耦,日誌收集和分析,持久化儲存!

    分散式kafka叢集通常的配置方式如下:

    1,所有伺服器上安裝jdk!

    2,安裝kafka安裝包並解壓!

    3,假設zookeeper叢集三臺機器分別為a,b,c,kafka機器群為1,2,3!

    4,建立zk叢集,使用kafka解壓包中自帶的zk搭建叢集,修改zookeeper.properties檔案,三臺機器保持一致,同時配置日誌路徑!

    5,建立myid檔案,放入kafka/zookeeper目錄下,新增myid為機器對應的1,2,3!

    6,啟動zookeeper叢集!

    7,修改kafka中的server.properties檔案,設定各自id,主機ip,埠,和執行緒連線資訊!配置zookeeper.connect=1,2,3對應的ip,配置日誌路徑!

    8,啟動kafka叢集!

    至此,三臺機器組成的kafka叢集就搭建完成!

    使用spring-integration-kafka等包連線spring和kafka,開啟kafka自帶監聽器!配置生產者和消費者和topic等資訊即可!

    kafka作為一款不僅僅是訊息功能的訊息中介軟體,擁有超大吞吐量和容錯能力,必將成為以後分散式訊息叢集的優先選擇!

  • 中秋節和大豐收的關聯?
  • 治腳跟疼有什麼好方法?