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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

zuul容错与回退

發布時間:2024/4/13 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 zuul容错与回退 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?zuul默認是整合了hystrix和ribbon的, 提供降級回退,那如何來使用hystrix呢?

我們自行寫一個類,繼承FallbackProvider 類 然后重寫里面的方法

@Override public String getRoute() {return null; }@Override public ClientHttpResponse fallbackResponse(String route, Throwable cause) {return null; }

這里 會發現有這2個方法需要重寫, 那么如何來寫呢? 我們可以查閱官方文檔:

這是官方提供的demo

代碼:

class MyFallbackProvider implements FallbackProvider {@Overridepublic String getRoute() {//制定為哪個微服務提供回退(這里寫微服務名 寫*代表所有微服務)return "*";}//此方法需要返回一個ClientHttpResponse對象 ClientHttpResponse是一個接口,具體的回退邏輯要實現此接口//route:出錯的微服務名 cause:出錯的異常對象@Overridepublic ClientHttpResponse fallbackResponse(String route, final Throwable cause) {//這里可以判斷根據不同的異常來做不同的處理, 也可以不判斷//完了之后調用response方法并根據異常類型傳入HttpStatusif (cause instanceof HystrixTimeoutException) {return response(HttpStatus.GATEWAY_TIMEOUT);} else {return response(HttpStatus.INTERNAL_SERVER_ERROR);}}private ClientHttpResponse response(final HttpStatus status) {//這里返回一個ClientHttpResponse對象 并實現其中的方法,關于回退邏輯的詳細,便在下面的方法中return new ClientHttpResponse() {@Overridepublic HttpStatus getStatusCode() throws IOException {//返回一個HttpStatus對象 這個對象是個枚舉對象, 里面包含了一個status code 和reasonPhrase信息return status;}@Overridepublic int getRawStatusCode() throws IOException {//返回status的code 比如 404,500等return status.value();}@Overridepublic String getStatusText() throws IOException {//返回一個HttpStatus對象的reasonPhrase信息return status.getReasonPhrase();}@Overridepublic void close() {//close的時候調用的方法, 講白了就是當降級信息全部響應完了之后調用的方法}@Overridepublic InputStream getBody() throws IOException {//吧降級信息響應回前端return new ByteArrayInputStream("降級信息".getBytes());}@Overridepublic HttpHeaders getHeaders() {//需要對響應報頭設置的話可以在此設置HttpHeaders headers = new HttpHeaders();headers.setContentType(MediaType.APPLICATION_JSON);return headers;}};} }

?

總結

以上是生活随笔為你收集整理的zuul容错与回退的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。