跳至內容

Kafka

出自Taiwan Tongues 台語維基
於 2025年8月23日 (六) 15:05 由 TaiwanTonguesApiRobot留言 | 貢獻 所做的修訂 (從 JSON 檔案批量匯入)

(差異) ←上個修訂 | 已批准修訂 (差異) | 最新修訂 (差異) | 下個修訂→ (差異)

Kafka是由 Apache 軟體基金會開發的一个開源流處理平台,由 Scala 和 Java 編寫。這个專案的目標是為著處理即時資料提供一个統一、懸吞吐、低延遲的平台。其實久化層的本質上是一个「按照分散式事務紀錄檔架構的大規模釋出 / 訂閱訊息佇咧列」,這予伊做企業級基礎設施來處理串流資料非常有價值。此外,Kafka 會當通過 Kafka Connect 共外部系統連做伙(用佇資料輸入 / 輸出), 並提供了 Kafka Streams—— 一个 Java 串流處理庫。

該設計受事務紀錄檔的影響較大。

Kafka 的歷史

Kafka 頭先是由領英來開發,並且因為二空一一年初開源,並且二空一二年十月二十三由 Apache Incubator 孵出站。二空一四年十一月,幾个捌咧領英為 Kafka 做工課的程師,建立了名為 Confluent 的新公司,, 並且著目睭 Kafka。根據二空一四年 Quora 的貼文,Jay Kreps 敢若已經共以作家受朗茨 ・ 卡夫卡號名。Kreps 選擇將這个系統以一个作家號名是因為,伊是「一个用佇最佳化寫作的系統」,而且伊足愛卡夫卡的作品。

Kafka 彼个架構

Kafka 儲存的訊息來自任意厚予人號做「生產者」(Producer)的行程。資料對而且會當予人分配著無仝款的「分割區」(Partition)、 無仝的「Topic」落。佇一个分割區內底,遮的訊息被索引並連同時間黜儲存做伙。其他予人叫做「消費者」(Consumer)的行程會當對分割區查詢訊息。Kafka 執行佇一个由一台或者是濟台侍服器組成的模集頂懸,並且分割區會當迒叢集結點來分布。

Kafka 高效地處理即時串流資料,會當實現佮 Storm、HBase 和 Spark 的整合。成做群集部署到濟台侍服器頂懸,Kafka 處理伊所有的釋出佮訂閱訊息系統使用四个 API,產者 API、消費者 API、Stream API 和 Connector API。伊會當傳遞大規模串流訊息,內底建容錯功能,已經取代一寡傳統訊息系統,如 JMS、AMQP 等。

Kafka 架構的主要術語包括 Topic、Record 和 Broker。Topic 由 Record 組成,Record 持有無仝款的資訊,而且 Broker 是負責複製訊息。Kafka 有四个主要 API:

  • 生產者 API:支援應用程式釋出 Record 流。
  • 消費者 API:支援應用程式訂閱 Topic 佮處理 Record 流。
  • Stream API:將輸入流轉換做輸出流,並產生結果。
  • Connector API:執行可重用的生產者佮消費者 API,可將 Topic 連結到現有應用程式。

相關術語

  • Topic 用來對訊息進行分類,逐个進入著 Kafka 的資訊攏會去予囥著一个 Topic 落
  • Broker 用來實現資料儲存的主機侍服器
  • Partition 彼每一个 Topic 中的訊息會予人分做若是干个 Partition,來提高訊息的處理效率
  • Producer 訊息的生產者
  • Consumer 訊息的消費者
  • Consumer Group 訊息的消費群組

設計目標

Kafka 的效能啦

因為其廣泛整合到企業級基礎設施中,監測 Kafka 佇規模執行中的效能成做一个日日境重要的問題。監測捀到捀效能,要求佮蹤所有指標,包括講 Broker、消費者佮生產者。除了這以外欲監測 ZooKeeper,Kafka 用伊來協調各个消費者。目前有一寡監測平台會當追蹤 Kafka 的效能啦,有開源的,如領英的 Burrow;嘛有付費的,如 Datadog。除了遮的平台以外,收集 Kafka 的資料嘛會使使用工具來做,這家私一般需要的 Java,包括講 JConsole。

Consumer Group

Kafka 檔案格式

零 . index 零 . log 零 . timeindex 七十八追兩千兩百四十八 . snapshot leader-epoch-checkpoint

使用 Kafka 的企業

下跤的列表是曾經抑是當咧使用 Kafka 的知名企業:

參見

參考資料

外部連結

  • Apache Kafka 網站(英文)
  • 專案設計討論(英文)
  • Github 鏡親像
  • Morten Kjetland 著 Apache Kafka 的介紹(英文)
  • Quora 頂佮 RabbitMQ 的對比(英文)
  • Kafka 開發者郵寄清單中佮 RabbitMQ 的對比(英文)
  • Stackoverflow 頂佮 RabbitMQ 和 ZeroMQ 的對比(英文)
  • Apache Kafka 中央的樹集內部回應(英文)
  • Kafka 使用者郵寄清單討論(英文)