偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

在Serverless環(huán)境中如何設計微服務?

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

作者 | Raja Saravanan

編譯 | EthanServerless

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

圖片

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

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

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

圖片

Strangler 模式

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

2、聚合器(Aggregator)模式

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

圖片

?聚合器模式

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

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

圖片

?狀態(tài)機模式

4、Saga 模式

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

圖片

?Saga 模式

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

5、斷路器(Circuit breaker)模式

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

圖片

?Circuit breaker 模式

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

總結 

毫無疑問,云計算正在悄無聲息的影響著改變著我們的生活。不論是商業(yè),還是科研,Serverless 計算正在成為當下云計算的主流發(fā)展方向之一。于開發(fā)者而言,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

混合云多云環(huán)境微服務

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

微服務架構開發(fā)

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技術棧公眾號