天天看點

SpringCloud微服務實戰(5)-Feign應用通信(下)Feign的使用6 擷取商品清單(Feign)7 扣庫存(Feign)

負載均衡請求

SpringCloud微服務實戰(5)-Feign應用通信(下)Feign的使用6 擷取商品清單(Feign)7 扣庫存(Feign)
的确是輪詢請求
SpringCloud微服務實戰(5)-Feign應用通信(下)Feign的使用6 擷取商品清單(Feign)7 扣庫存(Feign)
為了檢驗是否為輪詢,在此打斷點
SpringCloud微服務實戰(5)-Feign應用通信(下)Feign的使用6 擷取商品清單(Feign)7 扣庫存(Feign)
SpringCloud微服務實戰(5)-Feign應用通信(下)Feign的使用6 擷取商品清單(Feign)7 扣庫存(Feign)
如果希望使用其他負載均衡規則該咋辦呢,看官網文檔
SpringCloud微服務實戰(5)-Feign應用通信(下)Feign的使用6 擷取商品清單(Feign)7 扣庫存(Feign)
SpringCloud微服務實戰(5)-Feign應用通信(下)Feign的使用6 擷取商品清單(Feign)7 扣庫存(Feign)
SpringCloud微服務實戰(5)-Feign應用通信(下)Feign的使用6 擷取商品清單(Feign)7 扣庫存(Feign)

Feign的使用

Feign

是一個聲明式的Web服務用戶端。這使得Web服務用戶端的寫入更加友善 要使用Feign建立一個界面并對其進行注釋。它具有可插入注釋支援,包括Feign注釋和JAX-RS注釋。Feign還支援可插拔編碼器和解碼器。Spring Cloud增加了對Spring MVC注釋的支援,并使用Spring Web中預設使用的HttpMessageConverters。Spring Cloud內建Ribbon和Eureka以在使用Feign時提供負載均衡的http用戶端。

如何加入Feign

  1. 要在您的項目中包含Feign,請使用組

    org.springframework.cloud

    和工件ID

    spring-cloud-starter-openfeign

    的啟動器
SpringCloud微服務實戰(5)-Feign應用通信(下)Feign的使用6 擷取商品清單(Feign)7 扣庫存(Feign)
  1. 在啟動類添加注解@EnableFeignClients

可以在@EnableFeignClients屬性defaultConfiguration中以與上述相似的方式指定預設配置

不同之處在于,此配置将适用于所有feigh用戶端

SpringCloud微服務實戰(5)-Feign應用通信(下)Feign的使用6 擷取商品清單(Feign)7 扣庫存(Feign)

調用商品服務的目标接口

SpringCloud微服務實戰(5)-Feign應用通信(下)Feign的使用6 擷取商品清單(Feign)7 扣庫存(Feign)
  1. 聲明調用的服務接口方法

@FeignClient

name屬性為某所需調用的某個服務的接口

在@FeignClient注釋中,String值(以上“存儲”)是一個任意的用戶端名稱,用于建立Ribbon負載平衡器,還可以使用url屬性(絕對值或隻是主機名)指定URL。應用程式上下文中的bean的名稱是該接口的完全限定名稱。要指定自己的别名值,可以使用@FeignClient注釋的qualifier值。

SpringCloud微服務實戰(5)-Feign應用通信(下)Feign的使用6 擷取商品清單(Feign)7 扣庫存(Feign)
  • 聲明式REST用戶端(僞RPC )
  • 采用了基于接口的注解

6 擷取商品清單(Feign)

SpringCloud微服務實戰(5)-Feign應用通信(下)Feign的使用6 擷取商品清單(Feign)7 扣庫存(Feign)
SpringCloud微服務實戰(5)-Feign應用通信(下)Feign的使用6 擷取商品清單(Feign)7 扣庫存(Feign)
SpringCloud微服務實戰(5)-Feign應用通信(下)Feign的使用6 擷取商品清單(Feign)7 扣庫存(Feign)
SpringCloud微服務實戰(5)-Feign應用通信(下)Feign的使用6 擷取商品清單(Feign)7 扣庫存(Feign)
SpringCloud微服務實戰(5)-Feign應用通信(下)Feign的使用6 擷取商品清單(Feign)7 扣庫存(Feign)

因為參數使用了 RequestBody 注解,是以需 POST 請求

SpringCloud微服務實戰(5)-Feign應用通信(下)Feign的使用6 擷取商品清單(Feign)7 扣庫存(Feign)
SpringCloud微服務實戰(5)-Feign應用通信(下)Feign的使用6 擷取商品清單(Feign)7 扣庫存(Feign)
SpringCloud微服務實戰(5)-Feign應用通信(下)Feign的使用6 擷取商品清單(Feign)7 扣庫存(Feign)

7 扣庫存(Feign)

SpringCloud微服務實戰(5)-Feign應用通信(下)Feign的使用6 擷取商品清單(Feign)7 扣庫存(Feign)

由于缺失無參構造器

SpringCloud微服務實戰(5)-Feign應用通信(下)Feign的使用6 擷取商品清單(Feign)7 扣庫存(Feign)