函式計算是如何工作的?

2021-10-25 08:33:07 字數 1253 閱讀 4630

上圖展示了函式計算完整的請求和呼叫鏈路。函式計算是事件驅動的無伺服器應用,事件驅動是說可以通過事件源自動觸發函式執行,比如當有物件上傳至 oss 中時,自動觸發函式,對新上傳的進行處理。函式計算支援豐富的事件源型別,包括日誌服務、物件儲存、**儲存、訊息服務、api 閘道器、cdn 等。

除了事件觸發外,也可以直接通過 api/sdk 直接呼叫函式。呼叫可以分為同步呼叫與非同步呼叫,當請求到達函式計算後,函式計算會為請求分配執行環境,如果是非同步呼叫,函式計算會將請求事件存入佇列中,等待消費。

同步呼叫的特性是,客戶端期待服務端立即返回計算結果。請求到達函式計算時,會立即分配執行環境執行函式。

以 api 閘道器為例,api 閘道器同步觸發函式計算,客戶端會一直等待服務端的執行結果,如果執行過程中遇到錯誤, 函式計算會將錯誤直接返回,而不會對錯誤進行重試。這種情況下,需要客戶端新增重試機制來做錯誤處理。

非同步呼叫的特性是,客戶端不急於立即知道函式結果,函式計算將請求丟入佇列中即可返回成功,而不會等待到函式呼叫結束。

函式計算會逐漸消費佇列中的請求,分配執行環境,執行函式。如果執行過程中遇到錯誤,函式計算會對錯誤的請求進行重試,對函式錯誤重試三次,系統錯誤會以指數退避方式無限重試,直至成功。

函式計算是 serverless 的,這不是說無伺服器,而是開發者無需關心伺服器,函式計算會為開發者分配例項執行函式。

函式邏輯執行結束後,不會立即釋放掉例項,會等一段時間,如果在這段時間內有新的呼叫,會復用這個例項,比如上圖中的 request 2,由於執行環境已經分配好了,request 2 可以直接使用,所以 request 2 就不會遇到冷啟動。

所以,為了減小冷啟動帶來的影響,要盡可能避免冷啟動,降低冷啟動帶來的延時。

使用預留例項可以完全避免冷啟動,預留例項是在使用者預留後就分配例項,準備執行環境;請求結束後系統也不會自動**例項。

雲計算是如何在智慧型醫療中發揮作用的?

隨著科技加速產業資訊化大趨勢的興起,醫療行業也迎來了新的發展階段。基於雲計算和大資料的 精準醫療服務 誕生了定 務 預約服務 個性化服務等新型就診方式,深刻改變了傳統的醫療服務模式。通過大資料 雲計算和人工智慧帶來的技術革命使得醫療服務更加便利,以預約為切入點,向患者提供預約諮詢問診 陪診 病床和手...

雲計算是被逼出來的

5月21日,第二屆中國雲計算大會在北京舉行,我在會上做了 新一代計算趨勢和核心技術 的主題演講。it168的記者洪釗峰總結出了我的十條 雲語錄 在此和大家分享這篇報道。雲計算是被逼出來的 it168 洪釗峰 1.雲計算是被逼出來的。雲計算是被逼出來的,計算量越來越大,資料越來越多,越來越要動態,越來...

sql計算工作日函式

這個演算法還不夠嚴謹,沒有考慮到周 六 日調換假期等細節的情況。1 建節假日表 create table holiday id int identity 1,1 not null name nvarchar 50 collate chinese prc ci as not null begindat...