Kafka-實時數據處理系統

簡介

  • Apache Kafka,2011年成爲開源Apache項目,然後於2012年成爲First-class Apache項目。
  • Kafka是用Scala和Java編寫的。
  • Apache Kafka是基於發佈訂閱的容錯消息系統。 它是快速,可擴展和設計分佈。

優點:可以橫向擴展、高可靠,而且還變態快

  • 消息結構:Kafka內部是一個消息隊列

組件

一、Broker(代理)
  • Kafka集羣通常由多個代理組成以保持負載平衡。
  • Kafka代理是無狀態的,所以他們使用ZooKeeper來維護它們的集羣狀態。
  • 一個Kafka代理實例可以每秒處理數十萬次讀取和寫入,每個Broker可以處理TB的消息,而沒有性能影響。
  • Kafka經紀人領導選舉可以由ZooKeeper完成。
二、ZooKeeper
  • ZooKeeper用於管理和協調Kafka代理。
  • ZooKeeper服務主要用於通知生產者和消費者Kafka系統中存在任何新代理或Kafka系統中代理失敗。
  • 根據Zookeeper接收到關於代理的存在或失敗的通知,然後產品和消費者採取決定並開始與某些其他代理協調他們的任務。
三、Producers(生產者)
  • 生產者將數據推送給經紀人。
  • 當新代理啓動時,所有生產者搜索它並自動向該新代理髮送消息
  • Kafka生產者不等待來自代理的確認,並且發送消息的速度與代理可以處理的一樣快。
四、Consumers(消費者)
  • 因爲Kafka代理是無狀態的,這意味着消費者必須通過使用分區偏移來維護已經消耗了多少消息。
  • 如果消費者確認特定的消息偏移,則意味着消費者已經消費了所有先前的消息。
  • 消費者向代理髮出異步拉取請求,以具有準備好消耗的字節緩衝區。
  • 消費者可以簡單地通過提供偏移值來快退或跳到分區中的任何點。
  • 消費者偏移值由ZooKeeper通知。

簡單步驟整理:

  1. 啓動服務
    Kafka使用Zookeeper,所以如果你沒有的話需要首先啓動Zookeeper服務。你可以使用kafka自帶的腳本啓動一個簡單的單一節點Zookeeper實例)
  2. 創建一個主題
  3. 發送消息
  4. 啓動一個消費者
  5. 設置多個代理集羣
  6. 使用Kafka Connect導入導出數據
  7. 用Kafka Streams處理數據

詳細使用學習教程:w3cschool

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章