您好,登錄后才能下訂單哦!
這篇“SpringCloud服務接口調用OpenFeign及使用的方法是什么”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“SpringCloud服務接口調用OpenFeign及使用的方法是什么”文章吧。
Feign是一個聲明式的Web服務客戶端,讓編寫Web服務客戶端變得非常容易,只需創建一個接口并在接口上添加注解即可。
在學習Ribbon時,服務間調用使用的是RestTemplate+Ribbon實現,而Feign在此基礎上繼續進行了封裝,使服務間調用變得更加方便。
而OpenFeign可以理解為Feign的升級版。
OpenFeign應用在消費端,服務端不需要做任何改變
創建一個新的消費端cloud-consumer-feign-order80
,首先引入相關依賴,引入OpenFeign以后,可以看到OpenFeign內置了Ribbon,所以他底層實現負載均衡還是依賴于Ribbon
<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <dependency> <groupId>com.yellowstar.springcloud</groupId> <artifactId>cloud-api-commons</artifactId> <version>1.0-SNAPSHOT</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies>
編寫配置文件
server.port=80 eureka.client.register-with-eureka=false eureka.client.service-url.defaultZone=http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka
在啟動類上添加如下注解
@EnableFeignClients
對于OpenFeign來說,服務間的調用需要在消費端創建一個接口,這個接口類似于服務端
@Component @FeignClient(value = "CLOUD-PAYMENT-SERVICE") public interface PaymentFeignService { @GetMapping("/payment/get/{id}") CommonResult<Payment> getPayment(@PathVariable("id") int id); }
默認情況下,OpenFeign調用方法,會給該方法一秒鐘的執行時間,如果一秒鐘之后沒有執行完方法,則直接報錯。而OpenFeign底層調用的Ribbon,也就是說我們需要設置Ribbon服務間調用的等待時間
#指的是建立連接所用的時間,適用于網絡狀況正常的情況下,兩端連接所用的時間 ribbon.ReadTimeout=5000l #指的是建立連接后從服務器讀取到可用資源所用的時間 ribbon.ConnectTimeout=5000
如果不設置,會報一下錯誤
OpenFeign在調用http請求時,可以將請求的日志完整的打印出來,有以下幾種日志級別,默認是無日志。
NONE:默認的,不顯示任何日志;
BASIC:僅記錄請求方法、URL、響應狀態碼及執行時間;
HEADERS:除了 BASIC 中定義的信息之外,還有請求和響應的頭信息;
FULL:除了 HEADERS 中定義的信息之外,還有請求和響應的正文及元數據。
首先需要對Feign的日志級別進行配置
@Configuration public class FeignConfig { @Bean Logger.Level feignLoggerLevel() { return Logger.Level.FULL; } }
添加配置文件
# feign日志以什么級別監控哪個接口 logging.level.com.yellowstar.springcloud.service.PaymentFeignService=debug
接下來就可以觀察http請求的完整信息了
以上就是關于“SpringCloud服務接口調用OpenFeign及使用的方法是什么”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。