官术网_书友最值得收藏!

3.1 事件模型

本節通過介紹FaaS平臺的幾種事件模型(請求模型)及觸發事件的結構,幫助讀者進一步了解FaaS平臺的執行原理及常見的觸發器類型。

3.1.1 FaaS事件模型

事件驅動是FaaS平臺常見的編程模型。FaaS事件模型主要由以下幾個部分組成,如圖3-1所示。

035-1

圖3-1 Serverless事件模型組成

  • 事件源:觸發后端服務的事件。
  • FaaS平臺:函數平臺。
  • 后端服務:包括廣泛的服務,如數據庫、消息隊列、其他API服務等。

在FaaS平臺中,通常將事件分為三類,如圖3-2所示。

035-2

圖3-2 Serverless事件分類

1. 同步/推送事件

在同步/推送事件模型中,通過一個請求觸發函數,等待其返回函數的執行結果。一個典型的例子是,當我們訪問一個API網關結合函數組成的網站時,輸入對應域名(發送請求)后,這個請求會收到一個resp的返回事件,也就是我們在瀏覽器中查看到的網頁(返回執行結果)。

2. 異步事件

我們在對象存儲中上傳某個文件,或者在通知服務中傳入一條消息,請求會先傳入對應的服務,之后該服務會生成一條請求觸發函數。在這種情況下,函數將執行請求,但不會向客戶端返回執行結果,因此稱為異步事件。

3. 拉取事件

在拉取事件模型中,觸發源往往會收到持續不斷的請求,也稱為流數據。和上述兩種事件模型不同,觸發源不會主動上報或推送請求,而是由FaaS平臺持續運行一個探測服務,檢測變化并主動拉取數據,傳入一個觸發請求執行的函數。該模型最典型的案例是觸發消息隊列,在交易系統中,通過消息隊列實時處理用戶的交易日志,將該隊列配置為FaaS平臺的觸發源,則可以對消息隊列中的流數據進行安全性檢查,篩選出異常數據(如刷單)并告警。

3.1.2 常見觸發器介紹

FaaS平臺的強大能力來自對多種觸發方式的支持,FaaS平臺常見的觸發器有以下幾種。

  • API網關:FaaS平臺最常用的觸發器之一,作為Serverless服務的API接入層,起到請求轉發、認證鑒權、安全防護等作用。網關的觸發方式主要是同步請求。
  • 對象存儲服務:作為云端的分布式存儲服務,在數據轉存、文件處理等場景下和FaaS服務有緊密的結合,例如文件解壓縮、CDN緩存刷新等。
  • 消息隊列服務:用于數據處理,對生產者和消費者之間的數據進行解耦。FaaS服務可以很好地完成數據中轉處理,在數據清洗、異常檢測場景的應用十分廣泛。
  • 數據庫服務:FaaS服務和云上數據庫服務也有緊密的結合。數據庫增刪改查等操作作為觸發器事件會傳入FaaS平臺,從而執行關聯操作,例如計數、發送告警等。
  • 監控、告警:FaaS服務可以作為監控服務的事件處理平臺,用戶通過配置監控觸發FaaS服務執行自定義邏輯,例如發送告警短信和郵件等。
  • 物聯網應用:物聯網應用具有弱狀態性、波峰波谷明顯等特點,十分適合通過FaaS平臺觸發。典型的物聯網服務有AWS Alexa、騰訊云智能對話平臺等。
  • 定時觸發:用于在約定的時間執行計劃好的工作,一般通過用戶定義CRON表達式實現時間周期的配置。定時觸發的應用場景非常廣泛,例如定時提醒服務(郵件、企業辦公軟件等)、日志定時清理及收集、請求定時刷新保活等。
  • API / SDK觸發:針對一些自定義場景,也可以直接調用FaaS服務的標準HTTP接口觸發,從而實現服務間的靈活組合及擴展。
主站蜘蛛池模板: 商城县| 张家川| 泰宁县| 扶风县| 如皋市| 社旗县| 阿拉善左旗| 伽师县| 垣曲县| 龙胜| 镇巴县| 揭东县| 获嘉县| 夹江县| 营口市| 景宁| 甘泉县| 龙山县| 锦州市| 苍溪县| 莫力| 女性| 洪雅县| 孝义市| 白银市| 乌审旗| 南郑县| 天津市| 孟州市| 武汉市| 西宁市| 宁波市| 江津市| 陕西省| 宝山区| 长宁县| 江油市| 葵青区| 响水县| 孝义市| 夏邑县|