雲原生最佳實踐系列 5:基於函數計算 FC 實現阿里雲 Kafka 消息內容控制 MongoDB DML 操作

方案概述

在大數據 ETL 場景,將 Kafka 中的消息流轉到其他下游服務是很常見的場景,除了常規的消息流轉外,很多場景還需要基於消息體內容做判斷,然後決定下游服務做何種操作。

該方案實現了通過 Kafka 中消息 Key 的內容來判斷應該對 MongoDB 做增、刪、改的哪種 DML 操作。

當 Kafka 收到消息後,會自動觸發函數計算中的函數,接收到消息,對消息內容做判斷,然後再操作 MongoDB。用戶可以對提供的默認函數代碼做修改,來滿足更復雜的邏輯。

整體方案通過 CADT 可以一鍵拉起依賴的產品,並完成了大多數的配置,用戶只需要到函數計算和 MongoDB 控制檯做少量配置即可。

方案優勢

  • 可以實現根據 Kafka 消息的具體內容判斷,該對 MongoDB 做哪種 DML 操作,靈活性和可擴展性極高。
  • 函數計算具有完善的日誌系統、容錯機制。可以清晰的看到對每條消息的處理日誌,如果邏輯執行失敗,也有重試機制和函數失敗補償機制,保證業務數據的完整性和一致性。

詳情可參見文檔:

https://help.aliyun.com/zh/fc/user-guide/retry-policy

https://help.aliyun.com/zh/fc/result-callback

方案限制: 目前源 Kafka 只支持阿里雲 Kafka。

部署架構

架構說明

該架構圖直觀的表現出了該方案中使用到的網絡(VPC,交換機,安全組)、Kafka、函數計算 FC、MongoDB 之間的關係。

網絡架構:

  • 整個方案會在某個 Region 下,該示例使用的是北京 Region
  • 在 Region 下會創建一個 VPC
    • 在該 VPC 下會創建一個某可用區的交換機,該示例使用的是 G 可用區
    • 在該 VPC 下會創建一個安全組
  • Kafka,FC,MongoDB 都在該 VPC 的 G 可用區的交換機下
  • FC 在與 VPC 其他資源互通時會使用到 VPC 下的安全組

產品介紹

專有網絡 VPC(Virtual Private Cloud): 是用戶基於阿里雲創建的自定義私有網絡, 不同的專有網絡之間二層邏輯隔離,用戶可以在自己創建的專有網絡內創建和管理雲產品實例,比如 ECS、負載均衡、RDS 等。

函數計算 FC(Function Compute): 函數計算是事件驅動的全託管計算服務。使用函數計算,您無需採購與管理服務器等基礎設施,只需編寫並上傳代碼或鏡像。函數計算爲您準備好計算資源,彈性地、可靠地運行任務,並提供日誌查詢、性能監控和報警等功能。

雲消息隊列 Kafka 版: 雲消息隊列 Kafka 版是阿里雲提供的分佈式、高吞吐、可擴展的消息隊列服務。雲消息隊列 Kafka 版廣泛用於日誌收集、監控數據聚合、流式數據處理、在線和離線分析等大數據領域,已成爲大數據生態中不可或缺的部分。

雲數據庫 MongoDB 版(ApsaraDB for MongoDB): 完全兼容 MongoDB 協議,基於飛天分佈式系統和高可靠存儲引擎,提供多節點高可用架構、彈性擴容、容災、備份恢復、性能優化等功能。

雲速搭 CADT(Cloud Architect Design Tools): 是一款爲上雲應用提供自助式雲架構管理的產品,顯著地降低應用雲上管理的難度和時間成本。本產品提供豐富的預製應用架構模板,同時也支持自助拖拽方式定義應用雲上架構;支持較多阿里雲服務的配置和管理。用戶可以方便的對雲上架構方案的成本、部署、運維、回收進行全生命週期的管理。

前置條件

在進行本文操作之前,您需要完成以下準備工作:

1)註冊阿里雲賬號,並完成實名認證。您可以登錄阿里雲控制檯,並前往實名認證頁面 https://account.console.aliyun.com/v2/#/authc/home) 查看是否完成實名認證。

2)購買按量付費資源,阿里雲賬戶餘額需要大於 100 元。考慮到部署後每小時會產生費用,建議賬號內餘額或者代金卷金額大於 200 元。您可以登錄阿里雲控制檯,前往賬戶總覽頁面 https://usercenter2.aliyun.com/home) 查看賬戶餘額。

操作步驟

本實踐可通過 CADT 官方模板快速拉起演示環境。

  1. 基礎環境搭建

  2. 配置 MongoDB

    2.1. 設置白名單

    2.2. 記錄 MongoDB 連接地址

    2.3. 創建 MongoDB 庫和集合

    2.4. 查詢 MongoDB 中的數據

  3. 配置函數計算 FC

    3.1. 登錄函數計算 FC 控制檯

    3.2. 配置函數環境變量

    3.3. 配置函數實例生命週期回調

    3.4. 配置函數的層

    3.5. 配置函數代碼

  4. 場景驗證

    4.1. 阿里雲 Kafka 模擬發送消息

    4.2. 查詢 MongoDB 數據

    4.3. 驗證更多場景

  5. 一鍵釋放資源

最佳實踐全部內容,請點擊此處查看。對方案和產品感興趣的朋友,可以加入釘釘羣交流(羣號:31852400)。

往期文章:

雲原生最佳實踐系列 1:藉助雲速搭 CADT 如何實現 Kafka 的性能壓測?

雲原生最佳實踐系列2:基於 MSE 雲原生網關同城多活

雲原生最佳實踐系列 3:基於 SpringCloud 應用玩轉 MSE

雲原生最佳實踐系列 4:基於 MSE 和 SAE 的微服務部署與壓測

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