Apache Kafka 是一個熱門的事件串流平台,主要用於收集、處理和儲存串流事件資料或是沒有明確開始或結束的資料。Kafka 有助於建構新一代的分散式應用程式,這類應用程式能夠彈性擴充,每分鐘可處理多達數十億個串流事件。
在事件串流系統如 Apache Kafka 和 Google Cloud Pub/Sub 推出之前,資料處理通常是透過週期性的批次工作進行,也就是會先儲存原始資料,之後每隔一段時間再處理。例如,電信公司可能會等到一天、一週或一個月結束時,才分析數百萬筆的通話記錄並計算總費用。
批次處理有其侷限性,其中一個就是無法即時處理。如今,有越來越多的機構希望能即時分析資料,以利及時做出業務決策,並在發生需要關注的事件時馬上採取行動。例如,上述電信公司可透過即時的費用通知服務來增強整體客戶體驗。
事件串流這時就能派上用場。事件串流會即時處理持續湧進的事件串流,從中擷取資料的時間值並建立推送式應用程式,只要發生需要關注的事情,推送式應用程式就會採取行動。事件串流的例子包括:連續分析顧客端網頁應用程式所產生的記錄檔、監控並回應顧客瀏覽電子商務網站時的行為、透過分析社群網路產生的點擊流資料變化持續掌握顧客喜好,或是收集並回應由物聯網 (IoT) 裝置產生的遙測資料。
瞭解 Google Cloud Managed Service for Apache Kafka 能自動執行 Kafka 作業與安全功能,並且輕鬆將資料串流至 BigQuery。
瞭解 Confluent Cloud 在 Google Cloud 上提供的全代管整合式 Apache Kafka 產品。
準備好了嗎?新客戶可以獲得價值 $300 美元的免費抵免額,盡情試用 Google Cloud 的各項功能。
Kafka 會取用串流資料並準確記錄發生了什麼以及何時發生,這項記錄稱為不可變的修訂版本記錄。這是不可變的內容,因為只能附加而不能更改。在這個系統中,您可以訂閱記錄 (存取資料),也可以從任意數量的串流即時應用程式和其他系統發布記錄 (新增更多資料)。
例如,您可以使用 Kafka 將網站上所有交易資料串流饋送至應用程式,這個應用程式會即時追蹤產品銷售,並將其與庫存產品數量進行比較,如此一來,就能及時補充庫存。
Kafka 是開放原始碼系統
這意味著任何人都可以免費使用其開放原始碼,藉此製作、修改和發布自己的版本,且用途不限。無需支付授權費,也沒有任何其他限制。Kafka 背後還有龐大的全球開發人員社群攜手改善其服務品質,所以 Kafka 能提供廣泛的連接器、外掛程式、監控工具和設定工具,而服務的生態系統也會不斷持續擴充。
擴充性與速度
Kafka 不僅能隨著不斷增長的資料量進行擴充,還可在整個企業中即時提供這些資料。身為分散式平台也是 Kafka 的一大優勢,也就是說,它能將處理程序分散在多台實體或虛擬機器之間進行。這有兩個優點:對於某些工作,它可以向外擴充,亦即在需要更多處理能力或儲存空間時能夠增加機器;另外它也兼具可靠性,因為即使發生個別機器故障的情況,平台依然可以運行無礙。但是,Kafka 的這項功能卻可能很難做到大規模管理。
儘管 Kafka 擁有上述所有優勢,但部署這項技術卻深具挑戰性。地端部署的 Kafka 叢集很難在實際工作環境中設定、擴充和管理。為 Kafka 建立地端部署基礎架構時,您需要佈建機器並設定 Kafka。此外您還必須設計分散式機器叢集以確保可用性、確認資料安全地儲存、設定監控功能,並審慎調度資料以支援負載變化。最後,您也必須維護該基礎架構、更換故障機器,並進行例行性的修補和升級。
另外一種做法是在雲端以代管服務形式使用 Kafka,佈建、建構和維護 Kafka 基礎架構的工作,則由第三方廠商負責,您只要建構並執行應用程式。如此一來,無需具備專門的 Kafka 基礎架構管理專業知識,您也能輕鬆部署 Kafka。您可以縮短管理基礎架構的時間,將心力投注在創造業務價值。
Kafka 透過五項核心功能實現串流事件處理:
發布
資料來源可將資料事件串流發布或放置到一或多個 Kafka 主題,亦即集合類似資料事件的群組。例如,您可以從 IoT 裝置 (譬如網路路由器) 取用資料串流,然後將其發布到進行預測性維護作業的應用程式中,計算該路由器何時可能發生故障。
取用
應用程式可以訂閱一或多個 Kafka 主題 (從中取用資料),然後處理產生的資料串流。例如,應用程式可以從多個社群媒體串流中取用資料並進行分析,判斷網路上對某個品牌的討論趨勢。
處理
Kafka Streams API 可以充當串流處理器,從一或多個主題取用傳入的資料串流,然後產生資料串流並傳出至一或多個主題。
連線
您也可以建立可重複使用的生成器或用戶連線,將 Kafka 主題連結到現有應用程式。目前有數百種現成的連接器可供使用,包括可連結 Dataproc、BigQuery 等主要服務的連接器。
商店
Apache Kafka 提供耐用儲存服務。Kafka 可以做為「可靠資料來源」,將資料分散在多個節點,所以無論是在單一資料中心內或橫跨多個可用區,都能實現高可用性部署。