天天看點

史上最簡單的SpringCloud教程 | 第三篇: 服務消費者(Feign)

史上最簡單的SpringCloud教程 | 第三篇: 服務消費者(Feign)

Feign是一個聲明式的僞Http用戶端,它使得寫Http用戶端變得更簡單。使用Feign,隻需要建立一個接口并注解。它具有可插拔的注解特性,可使用Feign 注解和JAX-RS注解。Feign支援可插拔的編碼器和解碼器。Feign預設內建了Ribbon,并和Eureka結合,預設實作了負載均衡的效果。

簡而言之:

Feign 采用的是基于接口的注解

Feign 整合了ribbon

繼續用上一節的工程, 啟動eureka-server,端口為8761; 啟動service-hi 兩次,端口分别為8762 、8773.

建立一個spring-boot工程,取名為serice-feign,在它的pom檔案引入Feign的起步依賴spring-cloud-starter-feign、Eureka的起步依賴spring-cloud-starter-eureka、Web的起步依賴spring-boot-starter-web,代碼如下:

在工程的配置檔案application.yml檔案,指定程式名為service-feign,端口号為8765,服務注冊位址為http://localhost:8761/eureka/ ,代碼如下:

在程式的啟動類ServiceFeignApplication ,加上@EnableFeignClients注解開啟Feign的功能:

定義一個feign接口,通過@ FeignClient(“服務名”),來指定調用哪個服務。比如在代碼中調用了service-hi服務的“/hi”接口,代碼如下:

在Web層的controller層,對外暴露一個”/hi”的API接口,通過上面定義的Feign用戶端SchedualServiceHi 來消費服務。代碼如下:

啟動程式,多次通路http://localhost:8765/hi?name=forezp,浏覽器交替顯示:

hi forezp,i am from port:8762 hi forezp,i am from port:8763