成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

在Serverless環境中如何設計微服務?

譯文 精選
開發 云計算
Serverless 體系結構的高度分布式特性,要求開發人員重新思考其應用程序設計和開發方法

作者 | Raja Saravanan

編譯 | EthanServerless

已成為企業在數字化、現代化升級過程中越來越流行的范式,不管是國內的阿里云、騰訊云、華為云,還是國外的亞馬遜云科技,微軟等云計算廠商,都正在大力投入無服務器計算領域。由于 Serverless 提供了一個微型的架構,終端客戶無需部署、配置或管理服務器服務,而且代碼運行所需要的服務器服務皆由云端平臺來提供,這就為企業提高了靈活性,同時降低了運營開銷和成本。但與之而來的問題在于,Serverless 體系結構的高度分布式特性,要求開發人員重新思考其應用程序設計和開發方法。本文介紹幾個最佳實踐設計模式,以饗讀者。

圖片

?眾所周知,Serverless 是基于微服務體系結構的自然選擇。以基于 AWS 的 Serverless 應用程序為例,它依賴于 AWS Lambda 函數,這些函數在設計上是無狀態和短暫的,Lambda 函數被設計為運行小塊代碼以響應其他服務發出的事件。Lambda 還與一系列可用于實現分布式系統中常見模式的托管服務集成,如消息隊列(Amazon 簡單隊列服務)、API(Amazon API 網關)和事件流(Amazon Kinesis)。這將有助于將構建微服務過程中的痛點最小化。

為工作負載選擇適當的設計模式 

?1、扼殺器(Strangler)模式?Strangler 模式允許開發人員用微服務(可以用一個或多個 Lambda 函數實現)逐步替換其單體組件,而不是完全關閉或一次性替換。

圖片

Strangler 模式

此模式使用 strangler(如API網關)來接受對遺留系統的傳入請求。然后,再將它們路由到遺留應用程序或新的 Serverless 應用。因為客戶端只與 strangler 交互,所以他們不知道后端服務受到影響。一旦整個遺留系統被重構,并且所有流量都被路由到新應用程序,則可以安全地棄用前者。

2、聚合器(Aggregator)模式

在基于微服務的架構中,客戶端通常需要調用多個后端服務來執行操作。由于這些調用發生在網絡上,客戶端和微服務之間的聊天通信可能會增加應用程序延遲,特別是在帶寬有限的情況下。

圖片

?聚合器模式

聚合器模式通過使用單個 Lambda 函數來接受所有客戶端請求,減少了客戶端需要進行的調用數量。然后,Lambda 函數將請求轉發給適當的微服務和第三方 API,來聚合它們的結果,并向客戶端返回單個響應。

3、狀態機模式(State Machine)?構建應用程序時,業務工作流往往會變得非常復雜。AWS 中的有一個比較好用的“Step”功能,可以用于協調涉及多個微服務的復雜工作流。“Step”功能包括內置的狀態管理、分支、錯誤處理和重試功能,無需編寫樣板代碼。

圖片

?狀態機模式

4、Saga 模式

在基于微服務的應用中,每個微服務通常都有自己的數據庫,其中包含與其他微服務數據庫中的數據密切相關的數據。Saga 模式通過協調互連微服務中的一系列本地事務來確保數據一致性。一旦微服務執行其本地事務,它就會觸發鏈中的下一個服務執行其事務。如果一個事務在此過程中失敗,將啟動一系列補償事務,以回滾以前事務中所做的更改。

圖片

?Saga 模式

Saga 模式可以通過 choreography 或 orchestration 來實現。在 choreography 模型中,每個服務發布一個事件,觸發下一個服務運行。而在orchestration 中,由中央協調器管理整個事務鏈。

5、斷路器(Circuit breaker)模式

在分布式系統中,在滿足一個請求時涉及多個服務,思考如何處理服務故障是至關重要的。有些問題(如網絡延遲)是間歇性的,可以自行解決,可能只需上游服務的重調用即可。然而,更嚴重的問題或停機,就需要主動干預,解決所需的時間成本都是不確定的。在這些情況下連續重試可能會消耗關鍵資源,并導致依賴同一資源池的其他服務匱乏,這可能導致災難性級聯故障。

圖片

?Circuit breaker 模式

斷路器模式允許使用鍵值存儲來跟蹤請求故障和斷路器狀態,而且通過 Lambda 函數來決定是否需要基于故障計數對受影響的服務進行后續調用,從而在系統中構建容錯能力。

總結 

毫無疑問,云計算正在悄無聲息的影響著改變著我們的生活。不論是商業,還是科研,Serverless 計算正在成為當下云計算的主流發展方向之一。于開發者而言,Serverless 的部署比較簡單,但前提是,我們應該借鑒最佳實踐模式來設計,減少不必要的資源浪費。

原文鏈接:

https://medium.com/@raja.sk.saravanan/architect-your-microservices-in-serverless-with-right-design-pattern-60ebe674968

責任編輯:薛彥澤 來源: 51CTO
相關推薦

2021-03-05 18:05:56

JavaServerless 微服務

2018-03-26 04:53:46

Serverless微服務架構

2020-12-28 11:52:36

微服務數據中臺去中心化

2016-10-13 15:03:27

混合云多云環境微服務

2017-09-13 13:42:09

微服務緩存架構

2025-01-08 09:23:03

2020-02-14 08:05:05

數據網格高擴展易維護

2022-08-08 10:09:58

服務網格架構

2023-12-13 07:19:01

微服務架構Golang

2022-12-31 14:51:48

微服務Golang

2023-07-31 13:49:11

2021-12-29 08:30:48

微服務架構開發

2024-11-06 16:27:12

2021-02-06 17:55:41

微服務Maven版本控制

2022-03-31 08:15:38

微服務服務拆分架構

2023-04-25 08:01:23

JavaQuarkusKubernetes

2022-07-11 14:53:37

微服務容器IT

2024-07-10 10:51:39

SpringEureka數據中心

2024-03-18 08:48:52

Spring多端認證微服務

2022-04-23 16:58:24

微服務微服務架構
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 伊人青青久久 | 国产日韩欧美一区 | 91精品国产91久久久久久 | 91麻豆精品国产91久久久久久 | 综合久久久 | 在线一级片 | 成人免费视频网站 | 日韩快播电影网 | 国产精品不卡一区 | 久久久噜噜噜久久中文字幕色伊伊 | 国产精品欧美一区二区 | 国产中文字幕av | 91精品国产日韩91久久久久久 | www.色五月.com | 国产一区二区三区久久久久久久久 | 国产精品日韩欧美一区二区 | 国产精品一区视频 | 中文字幕一区二区三区不卡在线 | 黄色一级电影免费观看 | 久久久久国产精品 | 黄色一级大片在线免费看产 | 亚洲欧美在线观看 | 天天爱av | 色视频网站免费 | 男人的天堂视频网站 | 亚洲国产精品99久久久久久久久 | 国内精品视频一区二区三区 | 亚洲高清视频在线 | 欧美一级黑人aaaaaaa做受 | 亚洲日韩欧美一区二区在线 | 亚洲天堂久久新 | 久久亚洲国产精品日日av夜夜 | 久久99精品久久久 | 毛片一区二区 | 羞羞的视频在线观看 | 久久亚洲春色中文字幕久久久 | 亚洲综合在线一区 | 福利影院在线看 | 欧美综合一区二区三区 | 99re国产视频 | 亚洲一级av毛片 |