Kafka學習:快速入門

最近在學習Kafka,新的知識容易忘,好記性不如爛筆頭,多記記終歸是好的。

一、Kafka 簡介

在這裏插入圖片描述

Kafka是由Apache軟件基金會開發的一個開源流處理平臺,由Scala和Java編寫。Kafka是一種高吞吐量分佈式發佈訂閱消息系統
在這裏插入圖片描述

Kafka 首先作爲一個消息系統,和很多傳統消息系統一樣擁有以下好處:

  • 異步通信:發送方不需要等待接收方處理消息,就可以直接繼續自己的事。
  • 解耦:作爲第三方存儲發送/接受的消息,可以擴展或修改兩邊的處理過程,只要確保它們遵守同樣的接口約束。
  • 可恢復性:作爲第三方存儲的消息可以保證系統的一部分組件失效時,不會影響到整個系統。比如消費者暫時失效了,恢復後可以繼續消費消息。
  • 緩存:可以平衡發送/接受方的處理能力,削峯減流,避免發送方流量遠大於接收方導致接收方崩潰。

其次Kafka 是一個高吞吐的分佈式架構。

  • 通過O(1)的磁盤數據結構提供消息的持久化,這種結構對於即使數以TB的消息存儲也能夠保持長時間的穩定性能。
  • 高吞吐量 :即使是非常普通的硬件Kafka也可以支持每秒數百萬 的消息。

Kafka 的分佈式架構可以提供高可用、高併發、複製備份等好處。
在這裏插入圖片描述

  • Producer :消息生產者,就是向 kafka broker 發消息的客戶端;
  • Broker :一臺 kafka 服務器就是一個 broker。一個集羣由多個 broker 組成。一個 broker可以容納多個 topic。
  • Topic :可以理解爲一個隊列,生產者和消費者面向的都是一個 topic;
  • Partition:爲了實現擴展性,一個非常大的 topic 可以分佈到多個broker(即服務器)上,一個 topic 可以分爲多個 partition,每個 partition 是一個有序的隊列;
  • Replica:副本,爲保證集羣中的某個節點發生故障時,該節點上的 partition 數據不丟失,且 kafka 仍然能夠繼續工作,kafka 提供了副本機制,一個 topic 的每個分區都有若干個副本,一個 leader 和若干個 follower。
  • leader:每個分區多個副本的“主”,生產者發送數據的對象,以及消費者消費數據的對象都是 leader。
  • follower:每個分區多個副本中的“從”,實時從 leader 中同步數據,保持和 leader 數據的同步。leader 發生故障時,某個 follower 會成爲新的 follower。
  • Consumer :消息消費者,向 kafka broker 取消息的客戶端;
  • Consumer Group (CG):消費者組,由多個 consumer 組成。消費者組內每個消費者負責消費不同分區的數據,一個分區只能由一個組內消費者消費;消費者組之間互不影響。所有的消費者都屬於某個消費者組,即消費者組是邏輯上的一個訂閱者。

二、Kafka 命令大全


Kafka 命令

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