一、使用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")介面上面使用了@feignclient annotation 標記目標的微服務,然後建立相關的方法宣告。public inte***ce userfeignclient
或許你已經注意到,所有的操作跟我們springmvc中的annotation一模一樣。不過需要注意的是,方法的引數預設是使用@requestbody進行交換的,所以如果我們希望使用普通的引數傳參,還需要打上springmvc的@requestparam annotation。
之後在我們呼叫的service層或者是controller層 直接注入userfeignclient。由於演示我就不劃分業務層和服務層了。
@restcontroller事實上feign提供了自己的annotation配置,但是如果習慣使用springmvc的你,一定會和筆者一樣選擇如上的配置。public class productcontroller
}
二、feign壓縮
feign.compression.request.mime-typesmime-types 指定壓縮的型別,min-reqest-size指定壓縮的閾值。=feign.compression.request.min-request-size
=2024
三、feign日誌
在配置類中配置feign的日誌級別:
@beanpublic 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...