iT邦幫忙

2025 iThome 鐵人賽

DAY 30
0
Cloud Native

駕馭商用容器叢集,汪洋漂流術系列 第 30

【Day 30】 Kafka 與 Confluent:從開源訊息串流到商業平台的進化

  • 分享至 

  • xImage
  •  

前言

使用叢集建立龐大的艦隊服務,常常需要面臨龐大的使用者請求,面對這群使用者還需要搭建一些「事件串流平台」來滿足使用者,例如接收即時行情,買賣或搶購資訊。 這就要從 Kafka 開始說起。

歷史

  • Kafka 的誕生源自於 LinkedIn 的內部專案,2010 年,LinkedIn 為了處理龐大的即時活動流(activity stream),為了實現以下需求:
    • 高吞吐(每秒百萬筆事件)
    • 分散式(跨多個節點保證可用性)
    • 持久化(不是單純的 in-memory queue)
  • 工程師 Jay Kreps、Neha Narkhede、Jun Rao 在 LinkedIn 開發出一個新系統 — Kafka
  • 2011 年,Kafka 被捐贈給 Apache 基金會,正式成為開源專案,進入 Apache Incubator。
  • 當時的 Kafka,其定位是「分散式 Commit Log」,有別於 傳統的 MQ(ActiveMQ、RabbitMQ) 不同。
    • Publisher/Subscriber 模式 + 持久化儲存
    • Partition 提供水平擴充
    • Zookeeper 管理叢集一致性

演變

  • 隨著 LinkedIn 自己用 Kafka 處理各種活動日誌,其他公司(Netflix、Uber、Airbnb)也開始導入。 Kafka 陸續加入
    • Kafka Streams(資料處理 API)
    • Exactly-once semantics(避免重複處理)
    • KRaft 模式(逐步取代 Zookeeper)

    幾乎是要實現 事件驅動架構、資料管線、即時分析 的標配了。

商業化

  • 2014 年,Kafka 的三位作者 Jay、Neha、Jun 離開 LinkedIn,創辦了 Confluent
  • 目標很明確: 「把 Kafka 變成企業級資料串流平台,而不是單純的訊息系統。」
  • Confluent 在 Kafka 的基礎上,提供:
    • Schema Registry(管理資料結構演進)
    • Kafka Connect(與資料庫、雲端服務整合)
    • Control Center(GUI 監控與管理)
    • Confluent Cloud(雲端全託管 Kafka 服務)
  • 原本的 Apache KafkaApache 2.0 License
  • Confluent 的元件,起初也大多是 Apache 2.0 License,包含 Schema Registry、KSQL、Control Center,但在 2018 起,Confluent 引入 Confluent Community License (CCL)
    • CCL 允許使用者可以免費使用,但禁止建立「提供 Kafka 即服務」的 SaaS 平台,目的是避免 AWS、Azure、GCP 直接拿開源 Confluent 元件來包裝販售

結論

  • 想單純用 Kafka:直接用 Apache Kafka,社群版本足夠應付大多數情境
  • 想省管理麻煩:考慮 Confluent CloudAWS MSK

    MSK 沒有完整 Confluent 元件!!!

  • 想要進階功能(Schema Registry、Control Center):
    • 需接受 Confluent 的授權
項目 Apache Kafka Confluent
起源 2010 年 LinkedIn 內部專案,2011 捐給 Apache 基金會 2014 年由 Kafka 三位作者創辦公司
定位 分散式事件串流平台核心(引擎) 企業級資料串流平台(商品)
授權模式 Apache 2.0(完全開源,自由商用) 混合授權:• 核心 Kafka:Apache 2.0 • 進階元件:Confluent Community License (CCL) 或 Enterprise License
元件範圍 Kafka Broker、Producer、Consumer、Kafka Streams、KRaft (新一代元件) 在 Kafka 基礎上加值:• Schema Registry(資料結構管理)• Kafka Connect(與外部系統整合)• KSQL/ksqlDB(即時 SQL 分析)• Control Center(監控 GUI)• Confluent Cloud(雲端托管)
部署方式 自行架設或使用雲端托管(如 AWS MSK、Azure Event Hubs for Kafka) 提供自家雲端服務 Confluent Cloud,也支援 On-Premise
社群生態 Apache 基金會維護,龐大社群(Netflix、Uber、Airbnb 等採用) 官方公司主導開發,維護進階功能與 SaaS
特色 穩定、核心簡單、自由度高 管理方便、功能齊全、支援企業級需求
限制 缺乏內建 GUI 與進階整合,需要額外維護與搭建 免費版本有限制,SaaS 功能需付費,授權限制避免被雲廠商拿去販售

上一篇
【Day 29】 AAP / ArgoCD / Operator 比較與釐清
系列文
駕馭商用容器叢集,汪洋漂流術30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言