部落格 & java
2021/01/15
從 Apache Kafka 擷取資料到 Google Cloud Pub/Sub 的範例
Artur Khanin , Ilya Kozyrev & Alex Kosolapov
在這篇部落格文章中,我們展示了一個範例,建立一個管道從Apache Kafka 中的單一主題或多個主題讀取資料,並將資料寫入Google Pub/Sub 中的主題。此範例提供了程式碼範例來實作簡單但功能強大的管道,並提供了一個您可以直接「隨插即用」的現成解決方案。
這個端對端範例包含在 Apache Beam 2.27 版本中,可以在這裡下載。
我們希望您會發現這個範例對於在 Kafka 和 Pub/Sub 之間設定資料管道很有用。
範例規格
支援的資料格式
- 可序列化的純文字格式,例如 JSON
- PubSubMessage
支援的輸入來源設定
- 單個或多個 Apache Kafka bootstrap 伺服器
- 透過純文字或 SSL 連線的 Apache Kafka SASL/SCRAM 驗證
- 密鑰儲存服務 HashiCorp Vault
支援的目的地設定
- 單一 Google Pub/Sub 主題
在簡單的情境中,此範例將建立一個 Apache Beam 管道,該管道將從具有來源主題的來源 Kafka 伺服器讀取訊息,並將文字訊息串流到指定的 Pub/Sub 目標主題。其他情境可能需要 Kafka SASL/SCRAM 驗證,這可以透過純文字或 SSL 加密連線執行。此範例支援使用單個 Kafka 使用者帳戶在提供的來源 Kafka 伺服器和主題中進行驗證。為了支援透過 SSL 的 SASL 驗證,此範例將需要 SSL 憑證位置,並存取具有 Kafka 使用者名稱和密碼的密鑰儲存服務,目前支援 HashiCorp Vault。
我可以在哪裡執行此範例?
有兩種執行管道的方式。
- 在本機。這種方式有很多選項 - 直接從您的 IntelliJ 執行,或建立
.jar
檔案並在終端機中執行,或使用您喜歡的執行 Beam 管道的方法。 - 在 Google Cloud 中使用 Google Cloud Dataflow
- 使用
gcloud
命令列工具,您可以從此 Beam 範例建立一個 Flex 範本,並在 Google Cloud Platform 中執行它。這需要對範例進行相應的修改,才能將其轉換為範本。 - 此範例以 Flex 範本版本的形式存在於 Google Cloud Dataflow 範本管道儲存庫中,無需額外修改程式碼即可執行。
- 使用
下一步
試試這個Beam 端對端範例。如果您是 Beam 的新手,我們希望這個範例能讓您更了解管道是如何運作和看起來的。如果您已經在使用 Beam,我們希望其中的一些程式碼範例對您的使用案例有用。
如果您遇到任何問題,請告訴我們。