日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

使用SpringBoot實現微服務超時重試模式的示例

瀏覽:22日期:2023-04-09 17:58:29

使用resilience4j的庫和Spring Boot設計高彈性的微服務。

微服務本質上是分布式的。當您使用分布式系統時,請始終記住這一第一法則- 網絡中可能發生任何事情。處理任何此類意外故障可能很難解決。故障可能是任何東西-應用程序,硬件或網絡等。

系統從故障中恢復并保持正常運行的能力使系統更具 彈性。它還避免了下游服務的任何級聯故障。

重試模式:

在微服務體系結構中,當有多個服務(A,B,C和D)時,一個服務(A)可能依賴于另一服務(B),而另一服務(B)又可能依賴于C,依此類推。有時由于某些問題,服務D可能無法按預期響應。服務D可能引發了某些異常,例如內存不足 錯誤或內部服務器錯誤。此類異常被級聯到下游服務,這可能導致不良的用戶體驗,如下所示。

使用SpringBoot實現微服務超時重試模式的示例

有時,當google.com對我們不起作用時,我們只是不放棄。我們假設頁面下次可以正常工作,并且大多數情況下都會刷新頁面,因此只需刷新頁面即可。間歇性網絡問題非常普遍。在微服務領域,我們可能正在運行同一服務D的多個實例,以實現高可用性和負載平衡。如果其中一個實例可能有問題,并且無法正確響應我們的請求,則如果我們重試該請求,則負載均衡器可以將請求發送到運行狀況良好的節點并正確獲得響應。因此,使用“重試”選項,我們有更多機會獲得正確的響應。

使用SpringBoot實現微服務超時重試模式的示例

讓我們考慮這個簡單的應用程序來解釋此重試模式。

使用SpringBoot實現微服務超時重試模式的示例

如上所述,我們有多個微服務 產品服務充當產品目錄并負責提供產品信息 產品服務取決于評級服務。 評分服務維護產品評論和評分。 由于擁有大量數據而速度慢是眾所周知的。 每當我們查看產品詳細信息時,產品服務就會將請求發送到評分服務,以獲取該產品的評論。 我們還有其他服務,例如帳戶服務,訂單服務和付款服務等,與本文的討論無關。 產品服務是一項核心服務,沒有它,用戶將無法啟動訂單工作流程。

設置:

<dependency> <groupId>io.github.resilience4j</groupId> <artifactId>resilience4j-spring-boot2</artifactId> <version>1.6.1</version></dependency>

產品服務負責根據用戶搜索條件提供產品列表。它是即使在關鍵負載下也應該啟動和響應的核心服務之一。如果下降,將嚴重影響收入。由于此服務取決于評級服務,因此我們不希望任何網絡問題或評級服務不可用性影響此產品服務。這就是使用 resilience4j 庫的目的。

我首先為resilience4j創建一個配置, 如下所示。在這里,我們將超時明確設置為3秒。我們可以在特定的超時時間內添加多個服務。 我們可以有多種服務配置,如下所示。 對于ratingService,我們將最多進行3次重試,延遲5秒。 retryExceptions:這些是我們將重試的異常。這是一個數組字段。您可以配置多個例外。 ignoreExceptions:有些異常我們可能不想重試。例如,一個錯誤的請求就是一個錯誤的請求。重試沒有意義。因此,我們忽略了這一點。

resilience4j.retry: instances: ratingService: maxRetryAttempts: 3 waitDuration: 5s retryExceptions:- org.springframework.web.client.HttpServerErrorException ignoreExceptions:- org.springframework.web.client.HttpClientErrorException someOtherService: maxRetryAttempts: 3 waitDuration: 10s retryExceptions:- org.springframework.web.client.HttpServerErrorException- java.io.IOException

代碼:

@Servicepublic class RatingServiceClient { private final RestTemplate restTemplate = new RestTemplate(); @Value('${rating.service.endpoint}') private String ratingService; @Retry(name = 'ratingService', fallbackMethod = 'getDefault') public CompletionStage<ProductRatingDto> getProductRatingDto(int productId){Supplier<ProductRatingDto> supplier = () -> this.restTemplate.getForEntity(this.ratingService + productId, ProductRatingDto.class) .getBody();return CompletableFuture.supplyAsync(supplier); } private CompletionStage<ProductRatingDto> getDefault(int productId, HttpClientErrorException throwable){return CompletableFuture.supplyAsync(() -> ProductRatingDto.of(0, Collections.emptyList())); }}

代碼解釋:

@Retry表示resilience4j將對該方法執行應用重試邏輯。 name = ratingService 表示 resilience4j 將使用yaml中的ratingService配置。 當main方法由于某種原因失敗時,將使用fallbackMethod。

總結

重試模式 是用于設計彈性微服務的最簡單的微服務 設計模式之一。引入重試可以解決與網絡相關的問題。

源代碼可 在此處獲得。

超時模式源碼可在此處獲得。

以上就是使用SpringBoot實現微服務超時重試模式的示例的詳細內容,更多關于SpringBoot實現微服務超時的資料請關注好吧啦網其它相關文章!

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美天堂视频| 欧美一区自拍| 精品亚洲精品| 麻豆精品视频在线观看视频| 日本亚洲不卡| 亚洲精品福利| 日韩一区二区三免费高清在线观看| 免播放器亚洲| 蜜桃一区二区三区在线| 蜜臀精品一区二区三区在线观看| 蜜桃91丨九色丨蝌蚪91桃色| 亚洲综合精品| 午夜亚洲福利| 在线免费观看亚洲| 婷婷视频一区二区三区| 久久国产乱子精品免费女| 国产激情精品一区二区三区| 国产一区二区三区精品在线观看| 亚洲综合电影| 日韩一区二区免费看| 最新国产精品视频| 国产精品欧美一区二区三区不卡| 福利精品在线| 亚洲黄页一区| 日韩精品1区2区3区| 欧美国产三级| 日韩和的一区二在线| 亚洲专区一区| 91精品国产自产精品男人的天堂 | 国产一区不卡| 99久久久久久中文字幕一区| 美日韩精品视频| 国产欧美69| 亚洲播播91| 亚洲一区二区日韩| 麻豆中文一区二区| 蜜桃成人av| 午夜精品影视国产一区在线麻豆| 国产精品久久久免费| 日韩毛片视频| 日欧美一区二区| 成人精品高清在线视频| 五月天久久久| 久久激情综合网| 亚洲91视频| 日韩精品导航| 久久九九精品| 久久国产欧美日韩精品| 日本久久成人网| 日韩美女国产精品| 日韩欧美不卡| 日本91福利区| 久久中文字幕av| 欧美日韩伊人| 伊人精品一区| 国产精品sss在线观看av| 99精品综合| 欧美亚洲人成在线| 欧美日韩水蜜桃| 久久成人福利| 久久国产高清| 欧美二三四区| 国产精品一级在线观看| 狠狠干成人综合网| 国产一区二区三区黄网站| 中文字幕视频精品一区二区三区| 蜜桃av在线播放| 国产乱人伦精品一区| 亚洲免费影视| 九九色在线视频| 欧美激情福利| 水蜜桃久久夜色精品一区的特点| 黑森林国产精品av| 国产欧美丝祙| 中文字幕日韩高清在线| 久久精品电影| 韩日一区二区| 国产欧美日韩亚洲一区二区三区| 夜夜嗨网站十八久久| 天堂√8在线中文| 国产精品hd| 日韩成人在线看| 亚洲欧美成人综合| 999久久久亚洲| 国产精品久久久久久久久久10秀| 日本欧美韩国一区三区| 在线成人直播| 热三久草你在线| 久久精品国产福利| 日韩国产在线观看| 日韩精品一二区| 国产综合激情| 裤袜国产欧美精品一区| 久久影视三级福利片| 日韩国产欧美在线播放| 午夜在线视频观看日韩17c| 99精品视频在线观看免费播放| 精品视频免费| 欧美日韩xxxx| 日韩高清欧美激情| 亚洲一区欧美| 亚洲欧美日韩精品一区二区| 99精品视频在线| 欧美不卡高清一区二区三区| 91一区二区三区四区| 欧美aⅴ一区二区三区视频| 日产欧产美韩系列久久99| 鲁大师成人一区二区三区 | 国产精品毛片一区二区在线看| 国产日产一区| 久久国产麻豆精品| 国产精品主播| 麻豆精品在线| 久久中文字幕一区二区| 免费一级欧美片在线观看网站| 欧美久久香蕉| 欧美一区二区三区免费看| 亚洲精品看片| 日韩欧乱色一区二区三区在线| 日韩中文字幕一区二区高清99| 亚洲欧洲美洲国产香蕉| 亚洲精品护士| 欧美一区影院| 国产精品探花在线观看| 国产精品蜜月aⅴ在线| 欧美日韩视频免费看| 欧美日本久久| 免费在线欧美黄色| 色乱码一区二区三区网站| 久久久久久色 | 久久亚洲色图| 免费在线观看成人| 亚洲一区日韩| 亚洲综合中文| 欧美视频久久| 精品成av人一区二区三区| 成人亚洲一区| 久久精品亚洲人成影院| 欧美日韩国产探花| 日韩在线一二三区| 欧美日韩亚洲三区| 国产一区二区三区视频在线| 亚洲精品国产嫩草在线观看| 国产一区欧美| 久久亚洲国产精品一区二区| 婷婷亚洲精品| 欧美黄页在线免费观看| 成人黄色av| 午夜日韩福利| 91亚洲精品在看在线观看高清| 国产精品www.| 99国产精品免费视频观看| 久久亚洲色图| 国产精品欧美大片| 国产精品久久久久av电视剧| 欧美亚洲国产激情| 亚洲精品黄色| 成人在线免费观看91| 在线日韩中文| 免费在线看一区| 国产精品2区| 激情久久中文字幕| 日韩精品亚洲专区| 成人国产综合| 丝瓜av网站精品一区二区| 国产精品色在线网站| 日韩欧美一区二区三区免费观看| 一本色道精品久久一区二区三区| 日韩成人午夜精品| 国产盗摄——sm在线视频| 国产精品普通话对白| 国产精品tv| 红桃视频国产精品| 欧美日本精品| 日韩在线二区| 五月激激激综合网色播| 理论片午夜视频在线观看| 丝瓜av网站精品一区二区 | 蜜桃视频一区二区三区在线观看| 欧美精品97| 午夜一级在线看亚洲| 久久av免费看| 午夜一区在线| 久久久久久婷| 婷婷精品在线| 91精品一区国产高清在线gif | 亚洲一级少妇| 欧美在线日韩| 欧美在线网站| 国语精品一区| 日本不卡在线视频| 欧美.日韩.国产.一区.二区 | 久久亚洲人体| 免费人成黄页网站在线一区二区 | 久久久久久久久成人| 男女精品网站| 三级小说欧洲区亚洲区| 久久精品99久久久| 国产麻豆综合| 午夜av成人|