函式計算因為資料量過大超時的解決方案
我現在做的事情是把一個webtrack 的logstore 通過函式計算匯入到另外一個logstore。函式計算的功能是把IP解析成地理位置和把UserAgent String解析成裝置資訊。
現在的問題是FunctionComputeServer有時會time out失敗,但是失敗後資料任然是成功插入的。不過ETL認為任務失敗,不斷重試,最後導致插入大量重複的資料。
現在有一個解決方案就是減少函式的輸入資料,這樣就可以避免超時,不過我有一些問題。
第一個問題:唯一能影響函式的輸入資料量的設定只有函式的執行頻率嗎?我可以準確的指定輸入量嗎?
阿里答覆:完備的觸發器角度應該是要同時支援:size-based trigger、time-based trigger兩種模式,但因為日誌服務沒有辦法從流式資料訂閱介面獲取準確的日誌條數,所以size-based trigger目前提供不了。抱歉。
第二個問題:因為這是個webtrack logstore,每個時間點的logstore產生量是不穩定的。我如何評估產生的shard數目和大小?有沒有什麼地方可以檢視?有沒有什麼辦法可以提前測試函式計算的 performance這樣可以幫助我覺得合適的記憶體和超時設定?如果靠生產環境裡面的情況來做決定,我只能等出了問題在嘗試修改,那個時候已經太晚了。
阿里答覆: 一個shard支援5MB/s的資料寫入,logstore的流量指標可以在這裡看到:https://help.aliyun.com/document_detail/28971.html?spm=a2c4g.11174283.6.693.6IikRd。雲監控中的指標應該可以通過sdk方式獲取的,你可以基於這個值提前做shard分裂來擴容。
建議解決方案:
1. 將shard數目按照峰值情況進行預留
2. 將日誌服務觸發器的觸發間隔設定為3秒,函式計算的超時間隔設定得高一些(比如2分鐘)。我的考慮是:一般來說,函式偶爾超時,後續是可以慢慢趕上進度的(削峰填谷),我們容忍偶爾的超時(計算+IO作業,延時不太可控)。但如果一直超時,說明shard流量過高(分裂shard解決)或者是計算複雜度高(在函式端增加併發)。
3. 日誌服務寫資料本身是非冪等行為,例如在函式重複執行或者寫入資料超時重試時可能引起資料重複。這個問題根本上難以解決,降低重複概率的一個可選方案是:在函式計算裡面將本次已處理的資料saved_cursor記錄到外部系統(例如表格儲存),如果函式超時後再次執行,從表格儲存獲取上次處理進度,跳過已處理的部分資料,從saved_cursor位置繼續開始處理。
相關文章
- EXCEL大資料量匯出的解決方案Excel大資料
- 大資料儲存解決方案中的分離式與超融合部署大資料
- 開發函式計算的正確姿勢 —— 排查超時問題函式
- axios請求超時解決方案iOS
- 大資料量獲取TopK的幾種方案大資料TopK
- 函式計算|如何使用層解決依賴包問題?函式
- 大資料量處理實踐方案整理大資料
- android方法數超過64K的解決方案Android
- python之為函式執行設定超時時間(允許函式執行的最大時間)Python函式
- 大資料解決方案大資料
- pymysql 處理 連線超時最好的解決方案MySql
- Android Studio下載Gradle超時解決方案AndroidGradle
- 節省 58% IT 成本,呼叫函式計算超過 30 億次,石墨文件的 Serverless 實踐函式Server
- MATLAB呼叫NASTRAN的連續計算解決方案MatlabAST
- Oracle計算時間函式(對時間的加減numtodsinterval、numtoyminterval)Oracle函式
- 現代 CSS 解決方案:CSS 數學函式CSS函式
- 華為雲大資料BI 解決方案的超高價效比大資料
- 白話邊緣計算解決方案 SuperEdge
- 白話講解函式計算中的角色授權函式
- C語言程式設計>第八週 ② 編寫函式fun,函式的功能是:根據以下公式計算,計算結果作為函式值返回。C語言程式設計函式公式
- httpd使用systemctl啟動超時解決過程httpd
- GO語言————6.11 計算函式執行時間Go函式
- 阿里雲實時大資料解決方案,助力企業實時分析與決策阿里大資料
- 華為雲大資料BI解決方案助力“智慧智造”大資料
- 分散式鎖的解決方案分散式
- fork函式的學習--深入瞭解計算機系統函式計算機
- 計算 CRC32 的逆函式函式
- 五大分散式場景解決方案分散式
- 函式計算——應用初探函式
- 優雅的快取解決方案--設定過期時間快取
- AzureStack混合雲大資料解決方案REST大資料
- 大資料解決方案-(基礎篇)大資料
- 公安大資料系統解決方案大資料
- MSSQL資料庫超時的原因與解決方法SQL資料庫
- 為什麼我要遷移 SpringBoot 到函式計算Spring Boot函式
- 為什麼我要遷移SpringBoot到函式計算Spring Boot函式
- 資料爆炸別擔心,華為雲大資料BI解決方案為你排憂解難大資料
- 雲端計算大資料學習路線課程大綱資料:hive內部函式大資料Hive函式