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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

controller调用controller的方法_SpringCloud(5):Feign整合Ribbon和Hystrix来进行远程调用与服务熔断...

發布時間:2023/12/10 javascript 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 controller调用controller的方法_SpringCloud(5):Feign整合Ribbon和Hystrix来进行远程调用与服务熔断... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Feign

前面我們雖然使用了Ribbon和Hystrix進行了負載均衡和服務熔斷,但是我們的消費方代碼中由于要調用提供方的服務,比如:

String user = this.restTemplate.getForObject("http://service-provider/user/" + id, String.class);

使用了鏈接直接拼接的方式,這樣的硬編碼不太優雅,這樣我們就需要使用Feign。

Feign在英語中是偽裝的意思,這里Feign可以把Rest的請求進行隱藏,偽裝成類似SpringMVC的Controller一樣。

這樣我們就不用再自己拼接url,拼接參數等等操作,一切都交給Feign去做。

Feign也是Netflix開發的,是一種聲明式、模板化的HTTP客戶端,Feign可以讓我們更加便捷地調用HTTP API。

Feign支持自帶注解或JAX-RS注解。SpringCloud對Feign進行了增強,使Feign支持SpringMVC注解,并整合了Ribbon和Erueka。

Feign使用:

1.引入openFeign啟動器

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency>

2.feign.hystrix.enable=true,開啟feign的熔斷功能(Feign默認不開啟熔斷)

feign:hystrix:enabled: true # 開啟Feign的熔斷功能

3.在引導類上 @EnableFeignClients,不需要使用RestTemplate了,feign已經自動集成了Ribbon負載均衡的RestTemplate。

@SpringCloudApplication

4.創建一個接口,在接口添加@FeignClient(value="服務id", fallback=實現類.class)。

這是一個接口,Feign會通過動態代理,幫我們生成實現類。這點跟mybatis的mapper很像。

在接口中定義一些方法,這些方法的書寫方式跟之前controller類似。

@FeignClient

5.在controller中注入userClient

@Controller

6.創建了一個熔斷類,實現feign接口,實現對應的方法,這些實現方法就是熔斷方法

@Component

這樣,如果服務正常調用,則正常輸出

如果停掉提供方服務,則會服務熔斷,用戶端提示熔斷信息

設置feign的日志級別

1、首先設置cn.figo包下的日志級別都為debug

logging:level:cn.figo: debug

2、編寫Frign配置類,定義日志級別

@Configuration

這里指定的Level級別是FULL,Feign支持4種級別:

- NONE:不記錄任何日志信息,這是默認值。

- BASIC:僅記錄請求的方法,URL以及響應狀態碼和執行時間

- HEADERS:在BASIC的基礎上,額外記錄了請求和響應的頭信息

- FULL:記錄所有請求和響應的明細,包括頭信息、請求體、元數據。

3、在FeignClient接口上指定配置類

@FeignClient

這樣設置后,可以看到每次訪問的日志

請求壓縮

Spring Cloud Feign 支持對請求和響應進行GZIP壓縮,以減少通信過程中的性能損耗。通過下面的參數即可開啟請求與響應的壓縮功能:

feign:compression:request:enabled: true # 開啟請求壓縮response:enabled: true # 開啟響應壓縮

同時,我們也可以對請求的數據類型,以及觸發壓縮的大小下限進行設置:(這里的數據類型、壓縮大小下限均為默認值。)

feign:compression:request:enabled: true # 開啟請求壓縮mime-types: text/html,application/xml,application/json # 設置壓縮的數據類型min-request-size: 2048 # 設置觸發壓縮的大小下限

總結

以上是生活随笔為你收集整理的controller调用controller的方法_SpringCloud(5):Feign整合Ribbon和Hystrix来进行远程调用与服务熔断...的全部內容,希望文章能夠幫你解決所遇到的問題。

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