成人免费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微服務架構

2016-10-13 15:03:27

混合云多云環境微服務

2020-12-28 11:52:36

微服務數據中臺去中心化

2017-09-13 13:42:09

微服務緩存架構

2025-01-08 09:23:03

2020-02-14 08:05:05

數據網格高擴展易維護

2022-08-08 10:09:58

服務網格架構

2024-11-06 16:27:12

2021-12-29 08:30:48

微服務架構開發

2021-02-06 17:55:41

微服務Maven版本控制

2023-12-13 07:19:01

微服務架構Golang

2022-12-31 14:51:48

微服務Golang

2023-07-31 13:49:11

2022-03-31 08:15:38

微服務服務拆分架構

2022-07-11 14:53:37

微服務容器IT

2024-07-10 10:51:39

SpringEureka數據中心

2023-04-25 08:01:23

JavaQuarkusKubernetes

2024-03-18 08:48:52

Spring多端認證微服務

2021-05-20 13:22:31

架構運維技術
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 99久久精品国产一区二区三区 | 麻豆亚洲 | 欧美成人a | 国产精品久久一区二区三区 | 色av一区二区 | 亚洲国产91 | 毛片片 | 日韩 欧美 二区 | 亚洲日本欧美日韩高观看 | 色综合中文 | 国产精品一区在线 | 久久88| 欧美激情视频一区二区三区在线播放 | 日韩精品一区二区三区四区视频 | 国产精品久久久久久久久久久久久久 | 亚洲欧美一区二区三区视频 | 午夜成人免费视频 | 99热这里都是精品 | 九九看片| 99re6在线视频 | 夜夜草视频 | 69福利影院 | 日韩精品一区二区三区中文在线 | 做a视频 | 草比网站 | 亚洲欧美视频 | 久久大 | 99视频 | 99pao成人国产永久免费视频 | 久草视频2 | 日韩成人免费在线视频 | 日韩不卡一二区 | 羞羞涩涩在线观看 | 日韩视频在线一区 | 免费精品 | 拍拍无遮挡人做人爱视频免费观看 | 亚洲传媒在线 | 两性午夜视频 | 91网站在线观看视频 | 亚洲午夜精品视频 | 国产成人免费在线 |