日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

Spring Cloud【Finchley】-17 使用Zuul为单个或全部微服务提供容错与回退功能

發(fā)布時(shí)間:2025/3/21 javascript 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring Cloud【Finchley】-17 使用Zuul为单个或全部微服务提供容错与回退功能 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

  • 概述
  • 沒(méi)有添加fallback功能的示例
  • 使用zuul為單個(gè)微服務(wù)添加容錯(cuò)和回退功能
    • Step1. 新建微服務(wù)microservice-gateway-zuul-fallback
    • Step2. FallbackProvider實(shí)現(xiàn)類(lèi)
    • Step3. 測(cè)試
  • 為全部微服務(wù)提供回退
    • 代碼改造
    • zuul-fallback工程application.yml修改
    • 測(cè)試驗(yàn)證
  • 代碼

概述

Spring Cloud【Finchley】-14 微服務(wù)網(wǎng)關(guān)Zuul的搭建與使用 # Step8. 網(wǎng)關(guān)功能-Hystrix監(jiān)控測(cè)試中我們測(cè)試了Zuul默認(rèn)集成了Hystrix的監(jiān)控,但是沒(méi)有提及容錯(cuò)。

這里我們來(lái)學(xué)習(xí)下zuul的容錯(cuò)與回退功能如何實(shí)現(xiàn)。

官方指導(dǎo):https://cloud.spring.io/spring-cloud-static/Finchley.SR2/single/spring-cloud.html#hystrix-fallbacks-for-routes


沒(méi)有添加fallback功能的示例

順著 https://blog.csdn.net/yangshangwei/article/details/85850470#Step8_Hystrix_192 的操作步驟,如果我們將micorservice-provider-user 停掉,繼續(xù)多次調(diào)用,查看Dashboard

上圖可知:zuul的hystrix的監(jiān)控粒度是微服務(wù),而不是某個(gè)API,同樣的,經(jīng)過(guò)zuul的所有請(qǐng)求,都會(huì)被Hystrix保護(hù)起來(lái)。

zuul的配置規(guī)則如下:

zuul: routes:microservice-provider-user: /userprovider/**

所以可以這么訪問(wèn): http://localhost:4534/userprovider/user/4

這樣返回是不是很難看,下面我們來(lái)為zuul添加容錯(cuò)。


使用zuul為單個(gè)微服務(wù)添加容錯(cuò)和回退功能

Step1. 新建微服務(wù)microservice-gateway-zuul-fallback

為了不影響別的微服務(wù),我們新建個(gè)支持容錯(cuò)與回退功能的微服務(wù) ,在maven父工程上右鍵 新增mave module

代碼同 microservice-gateway-zuul的,為了區(qū)別,修改下application.yml中的端口,將port修改為4535


Step2. FallbackProvider實(shí)現(xiàn)類(lèi)

主要是兩個(gè)方法

  • getRoutes 方法,返回為哪個(gè)微服務(wù)提供回退功能
  • getBody 方法,微服務(wù)不可用時(shí)返回的信息
package com.artisan.microservice.fallback;import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream;import org.springframework.cloud.netflix.zuul.filters.route.FallbackProvider; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.client.ClientHttpResponse; import org.springframework.stereotype.Component;import com.netflix.hystrix.exception.HystrixTimeoutException; // 添加注解#Component使其成為Spring管理的bean @Component public class MyFallbackProvider implements FallbackProvider {@Overridepublic String getRoute() {// 為哪個(gè)微服務(wù)提供提供回退服務(wù),返回微服務(wù)的名字,必須和注冊(cè)在Eureka Server上的名字一致return "microservice-provider-user";}@Overridepublic ClientHttpResponse fallbackResponse(String route, final Throwable cause) {// fallback時(shí)的狀態(tài)碼if (cause instanceof HystrixTimeoutException) {return response(HttpStatus.GATEWAY_TIMEOUT);} else {return response(HttpStatus.INTERNAL_SERVER_ERROR);}}private ClientHttpResponse response(final HttpStatus status) {return new ClientHttpResponse() {@Overridepublic HttpStatus getStatusCode() throws IOException {return status;}@Overridepublic int getRawStatusCode() throws IOException {return status.value();}@Overridepublic String getStatusText() throws IOException {return status.getReasonPhrase();}@Overridepublic void close() {}@Overridepublic InputStream getBody() throws IOException {// 響應(yīng)體return new ByteArrayInputStream(("【 " +getRoute() + " 】fallback").getBytes());}@Overridepublic HttpHeaders getHeaders() {// headers設(shè)置HttpHeaders headers = new HttpHeaders();headers.setContentType(MediaType.APPLICATION_JSON);return headers;}};} }

Step3. 測(cè)試

  • 啟動(dòng)Eureka Server
  • 啟動(dòng)microservice-gateway-zuul-fallback
  • 啟動(dòng)micorservice-provider-user
  • 此時(shí),通過(guò)zuul去訪問(wèn)微服務(wù)micorservice-provider-user

    http://localhost:4535/userprovider/user/4

    停掉micorservice-provider-user,再次訪問(wèn)

    http://localhost:4535/userprovider/user/4

    可見(jiàn)回退功能生效了。


    為全部微服務(wù)提供回退


    代碼改造

    將 getRoute方法 返回 * or null

    @Overridepublic String getRoute() {return "*";}

    簡(jiǎn)單起見(jiàn),僅修改這一個(gè)地方,至于返回什么信息,我們這里也不做太復(fù)雜,保持和上面的示例一致即可。


    zuul-fallback工程application.yml修改

    zuul-fallback工程的zuul部分的配置信息:


    測(cè)試驗(yàn)證

    接下來(lái)測(cè)試下,為了驗(yàn)證我們起兩個(gè)微服務(wù):

  • 啟動(dòng)microservice-discovery-eureka
  • 啟動(dòng)microservice-provider-user
  • 啟動(dòng)micorservice-consumer-movie-ribbon
  • 啟動(dòng)microservice-gateway-zuul-fallback
  • 查看服務(wù)注冊(cè)情況 http://localhost:8761/

    查看zuul的路由信息 http://localhost:4535/actuator/routes

    先通過(guò)zuul微服務(wù)去訪問(wèn)其他兩個(gè)微服務(wù)

    電影微服務(wù): http://localhost:4535/userprovider/user/3

    {"id":3,"username":"artisan3","name":"小工匠三","age":30,"balance":300.00}

    用戶微服務(wù): http://localhost:4535/usermovie/movie/4

    {"id":4,"username":"artisan4","name":"小工匠4","age":40,"balance":400.00}

    停掉micorservice-consumer-movie-ribbon,再次通過(guò)zuul訪問(wèn)consumer-movie

    http://localhost:4535/usermovie/movie/4

    必須使用zuul代理的路徑訪問(wèn)才能生效,使用http://localhost:4535/micorservice-consumer-movie-ribbon/movie/4 不行,因?yàn)橥5舴?wù)后zuul的路由信息中 http://localhost:4535/actuator/routes 已經(jīng)沒(méi)有該代理信息了。

    同樣的停掉 microservice-provider-user, 再次訪問(wèn) http://localhost:4535/userprovider/user/3

    最后順便看下zuul的路由信息

    代碼

    https://github.com/yangshangwei/SpringCloudMaster/tree/master/microservice-gateway-zuul-fallback

    總結(jié)

    以上是生活随笔為你收集整理的Spring Cloud【Finchley】-17 使用Zuul为单个或全部微服务提供容错与回退功能的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: av福利在线免费观看 | 中文字幕在线不卡视频 | 黄色免费在线网站 | 永久在线观看 | 天堂在线8 | 男人用嘴添女人下身免费视频 | 国产一区二区三区久久久 | av大片在线观看 | 亚洲一区美女 | h视频在线免费观看 | 99热在| 日韩欧洲亚洲AV无码精品 | 日本一级黄色大片 | 中文字幕日韩一区二区 | 日本少妇b | 136福利视频导航 | 久久婷婷六月 | 国产免费一区二区三区四区五区 | 最好看的中文字幕国语电影mv | 台湾性生生活1 | 国产视频四区 | 日本爽爽爽爽爽爽在线观看免 | 日本免费一区二区三区四区 | 欧美亚洲日本国产 | 亚洲毛片在线播放 | 夜夜嗨av一区二区三区 | 中文字幕一区二区三区人妻不卡 | 有码一区二区三区 | 国产女人18毛片水真多18 | 亚洲在线天堂 | 亚洲免费在线看 | 国产精选第一页 | 国产精品一区二区白浆 | 性欧美18—19sex性高清 | 丝袜国产视频 | 亚洲综合在线中文字幕 | 中文字幕一二三四区 | 亚日韩一区| 人人爱人人草 | 国产一区在线播放 | 欧美性生交xxxxx久久久 | 精品一区久久久 | 97久久人国产精品婷婷 | 99视频在线免费 | 国产群p视频| 久久免费精品 | 日日人人 | 中国性猛交 | 成人精品免费网站 | 女裸全身无奶罩内裤内衣内裤 | 黄色一级片在线免费观看 | 欧美偷拍第一页 | 国产真人无遮挡作爱免费视频 | 成人乱人乱一区二区三区一级视频 | 日韩伦理一区二区三区 | 一区二区精品视频在线观看 | 日本黄大片在线观看 | 欧美三根一起进三p | 99精品成人 | 久久性av | 中文字幕一区二区三区人妻 | 日本女教师电影 | 在线cao | 日本在线免费观看视频 | 午夜黄色一级片 | 在线免费观看av网址 | 日韩av二区 | 国产成人欧美一区二区三区的 | 奇米在线观看 | 日韩精选| 国产日韩欧美另类 | 精品999久久久一级毛片 | avav亚洲 | 欧美熟妇另类久久久久久多毛 | 日本一二三区不卡 | 免费看成人aa片无码视频羞羞网 | 美女黄色大片 | 美女福利视频导航 | 亚洲综合99 | 办公室大战高跟丝袜秘书经理ol | 激情欧美一区二区 | 欧美一级黄色片视频 | 美女a视频 | 亚洲精品乱码久久久久久国产主播 | 女优在线观看 | 久久久婷 | 最新国产精品自拍 | 特黄aaaaaaaaa毛片免费视频 | 日韩美女性生活 | 极品少妇在线观看 | 久久久无码精品亚洲无少妇 | 无码精品国产一区二区三区 | 国产亚洲制服 | 91久久久久 | 麻豆影音先锋 | 西野翔之公侵犯中文字幕 | 伊人成人久久 | 在线观看亚洲大片短视频 | 亚洲毛片在线观看 |