springcloud之Feign的基本使用

2021-08-17 07:04:56 字數 1448 閱讀 1854

一、使用feign

feign 提供宣告式rest呼叫。一開始我們還在懊惱,dubbo都已經提供了配置式的服務呼叫了,為什麼springcloud沒有相應的解決方案?有springcloud提供了feign宣告式事務,使用feign有個非常大的好處就是,只要你屬性springmvc的annotation配置,feign就沒有什麼學習成本。

事不宜遲,我們首先將feign整合到我們的微服務當中:

org.springframework.cloud

spring-cloud-starter-feign

之前的筆記中,使用者服務系統提供了二個介面,第乙個介面是查詢使用者、第二個是新增使用者。以下我們就在商品服務中通過feign整合兩個api

首先我們需要在配置類當中打上@enablefeignclients 

@enablediscoveryclient

@enablefeignclients

然後我們建立乙個userfeignclient介面:

@feignclient(name = "tony-mall-provider-user")

public inte***ce userfeignclient

介面上面使用了@feignclient annotation 標記目標的微服務,然後建立相關的方法宣告。

或許你已經注意到,所有的操作跟我們springmvc中的annotation一模一樣。不過需要注意的是,方法的引數預設是使用@requestbody進行交換的,所以如果我們希望使用普通的引數傳參,還需要打上springmvc的@requestparam annotation。

之後在我們呼叫的service層或者是controller層 直接注入userfeignclient。由於演示我就不劃分業務層和服務層了。

@restcontroller

public class productcontroller

}

事實上feign提供了自己的annotation配置,但是如果習慣使用springmvc的你,一定會和筆者一樣選擇如上的配置。

二、feign壓縮

feign.compression.request.mime-types

=feign.compression.request.min-request-size

=2024

mime-types 指定壓縮的型別,min-reqest-size指定壓縮的閾值。

三、feign日誌

在配置類中配置feign的日誌級別:

@bean

public logger.level feignloggerlevel()

logging.level

.com.tony.mall.rest.userfeignclient

=debug

輸出的feign請求日誌如下:

SpringCloud微服務基礎4 Feign

spring cloud feign是一套基於netflix feign實現的宣告式服務呼叫客戶端。它使得編寫web服務客戶端變得更加簡單。我們只需要通過建立介面並用註解來配置它既可完成對web服務介面的繫結。它具備可插拔的註解支援,包括feign註解 jax rs註解。它也支援可插拔的編碼器和解碼...

SpringCloud之Dashboard 流監控

新建springcloud consumer hystrix dashboard模組 新增依賴 org.springframework.cloudgroupid spring cloud starter hystrixartifactid 1.4.6.releaseversion dependenc...

SpringCloud之Hystrix應用實踐

使用springcloud的hystrix功能,有幾種方式 1 單應用監聽,也可以用於測試 引用包 org.springframework.boot spring boot starter actuator org.springframework.cloud spring cloud starter...