springcloud 系列教程四:服務消費者(Feign)
一、Feign簡介
Feign 的英文表意為 "假裝,偽裝,變形", 是一個http請求呼叫的輕量級框架,可以以介面註解的方式發起 Http 請求,而不用像 httpclient 通過封裝 HTTP 請求報文的方式呼叫。Feign 通過處理註解,將請求模板化,當實際呼叫的時候,傳入引數,根據引數再應用到請求上,進而轉化成真正的請求,這種請求相對而言比較直觀。Feign被廣泛應用在Spring Cloud 的解決方案中,是學習基於Spring Cloud 微服務架構不可或缺的重要元件。
並且 Feign 預設集成了 Ribbon,並和 Eureka 結合,實現了負載均衡的效果。
二、開發步驟
1. pom 配置
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.5.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.bdqn</groupId> <artifactId>springcloud-feign</artifactId> <version>0.0.1-SNAPSHOT</version> <name>springcloud-feign</name> <description>Demo project for Spring Boot</description> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Greenwich.SR2</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> <version>2.1.2.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
2. application.yml 配置
#服務地址
server:
port: 8104
#應用名稱
spring:
application:
name: springcloud-feign
#註冊中心地址
eureka:
client:
service-url:
defaultZone: http://127.0.0.1:8100/eureka
register-with-eureka: true
fetch-registry: true
3. 建立介面
@FeignClient("springcloud-emp") public interface EmpServiceApi { @RequestMapping("/empinfo") String getUserInfo(); }
springcloud-emp
為要呼叫的服務名
4. 控制層 controller
@RestController
public class EmpController {
@Autowired
EmpServiceApi service;
@RequestMapping("/test")
public String test(){
String msg = service.getUserInfo();
return msg;
}
}
5. 啟動類
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public class SpringcloudFeignApplication {
public static void main(String[] args) {
SpringApplication.run(SpringcloudFeignApplication.class, args);
}
}
6. 測試
啟動註冊中心,springcloud-emp 服務和 feign 客戶端,首先檢視註冊中心:
springcloud-emp 服務多開,模擬叢集,然後我們通過 feign 客戶端呼叫,可以發現內建負載均衡:
相關推薦
springcloud 系列教程四:服務消費者(Feign)
一、Feign簡介 Feign 的英文表意為 "假裝,偽裝,變形", 是一個http請求呼叫的輕量級框架,可
史上最簡單的SpringCloud教程 | 第三篇: 服務消費者(Feign)
最新Finchley版本請訪問: https://www.fangzhipeng.com/springcloud/2018/08/30/sc-f3-feign/ 或者 http://blog.csdn.net/forezp/article/details/810409
SpringCloud進擊 | 三淺出:服務消費者(Feign)【Finchley版本】
1.前言 上一節:SpringCloud進擊 | 二淺出:服務消費者(Ribbon+REST)【Finchley版本】 上一節講述瞭如何通過 Ribbon + RestTemplate 的方式去消費服務,而在實際工作中,我們基本上都是使用 Feign 來完成呼叫。這篇就來說說如何通過
在eclipse上部署springcloud小例子--第二篇:服務消費者(feign)
上一篇文章,講述瞭如何通過RestTemplate+Ribbon去消費服務,這篇文章主要講述如何通過Feign去消費服務。 一、Feign簡介 Feign是一個宣告式的偽Http客戶端,它使得寫Http客戶端變得更簡單。使用Feign,只需要建立一個介面並註解。它具有可插拔的註解特性,可使用
【SpringCloud Greenwich版本】第三章:服務消費者(Feign)
一、SpringCloud版本 本文介紹的Springboot版本為2.1.1.RELEASE,SpringCloud版本為Greenwich.RC1,JDK版本為1.8,整合環境為IntelliJ IDEA 二、Feign介紹 Feign是一個宣告式的Web服務客戶端。這使得W
SpringCloud教程 | 第二篇: 服務消費者(Feign)
一、Feign簡介Feign是一個宣告式的偽Http客戶端,它使得寫Http客戶端變得更簡單。使用Feign,只需要建立一個介面並註解。它具有可插拔的註解特性,可使用Feign 註解和JAX-RS註解。Feign支援可插拔的編碼器和解碼器。Feign預設集成了Ribbon,並
SpringCloud入門3:服務消費者(Feign)
上一篇文章,講述瞭如何通過RestTemplate+Ribbon去消費服務,這篇文章主要講述如何通過Feign去消費服務。 一、Feign簡介 Feign是一個宣告式的偽Http客戶端,它使得寫Http客戶端變得更簡單。使用Feign,只需要建立一個介面並註解。它具
【SpringCloud Greenwich版本】第四章:服務消費者(ribbon)
一、SpringCloud版本 本文介紹的Springboot版本為2.1.1.RELEASE,SpringCloud版本為Greenwich.RC1,JDK版本為1.8,整合環境為IntelliJ IDEA 二、Ribbon介紹 Ribbon是一個客戶端負載均衡器,它可以很好地
企業級 SpringCloud 教程 (三)服務消費者(Feign)
pom https www. ram cat -h 客戶端 tin script 上一篇文章,講述了如何通過RestTemplate+Ribbon去消費服務,這篇文章主要講述如何通過Feign去消費服務。一、Feign簡介 Feign是一個聲明式的偽Http客戶端,它使得寫
SpringCloud教程 | 第三篇: 服務消費者(Feign)(Finchley版本)
lns efault ret java 服務註冊 star tco target hub 上一篇文章,講述了如何通過RestTemplate+Ribbon去消費服務,這篇文章主要講述如何通過Feign去消費服務。 一、Feign簡介 Feign是一個聲明式的偽Http客戶端
【轉載】SpringCloud教程 | 第三篇: 服務消費者(Feign)
上一篇文章,講述瞭如何通過RestTemplate+Ribbon去消費服務,這篇文章主要講述如何通過Feign去消費服務。 一、Feign簡介 Feign是一個宣告式的偽Http客戶端,它使得寫Http客戶端變得更簡單。使用Feign,只需要建立一個
SpringCloud(四):服務消費(Feign)
一、Feign介紹 Feign是一個宣告式的偽Http客戶端,它使得寫Http客戶端變得更簡單。使用Feign,只需要建立一個介面並註解。它具有可插拔的註解特性,可使用Feign 註解和JAX-RS註解。Feign支援可插拔的編碼器和解碼器。Feign預設集成了Ribbon,
Spring Cloud之路:(四) 服務消費者(Feign)
一、Feign簡介 Feign是一個宣告式的偽Http客戶端,它使得寫Http客戶端變得更簡單。使用Feign,只需要建立一個介面並註解。它具有可插拔的註解特性,可使用Feign 註解和JAX-RS註解。Feign支援可插拔的編碼器和解碼器。Feign預設集成了Ribbon,
史上最簡單的SpringCloud教程 | 第三篇: 服務消費者(Feign)
上一篇文章,講述了通過restTemplate+ribbon去消費服務,這篇文章主要講述通過feign去消費服務。 一、Feign簡介 Feign是一個宣告式的web服務客戶端,它使得寫web服務變得更簡單。使用Feign,只需要建立一個介面並註解。它具有可插拔的註
SpringCloud 第三篇: 服務消費者(Ribbon / Feign)
前面的文章學習了服務的註冊和發現。在微服務架構中,業務都會被拆分成一個獨立的服務,服務與服務的通訊是基於http restful的。Spring cloud有兩種服務呼叫方式,一種是ribbon+restTemplate,另一種是feign。在這一篇文章要學習
SpringCloud教程 | 第三篇: 服務消費者(Feign)
上一篇文章,講述了通過restTemplate+ribbon去消費服務,這篇文章主要講述通過feign去消費服務。 一、Feign簡介 Feign是一個宣告式的web服務客戶端,它使得寫web服務變得更簡單。使用Feign,只需要建立一個介面並註解。它具有可插拔的註解特性,
史上最簡單的SpringCloud教程 | 第三篇: 服務消費者(Feign)(Finchley版本)
上一篇文章,講述瞭如何通過RestTemplate+Ribbon去消費服務,這篇文章主要講述如何通過Feign去消費服務。 一、Feign簡介 Feign是一個宣告式的偽Http客戶端,它使得寫Http客戶端變得更簡單。使用Feign,只需要建立一個介面並註解
springcloud之服務消費者(feign)
開啟 out nbu 使用 方式 spring cat pan span 本章將繼續講述springcloud的消費者(feign) Spring Cloud Feign是一套基於Netflix Feign實現的聲明式服務調用客戶端。它使得編寫Web服務客戶端變得更
企業分布式微服務雲SpringCloud SpringBoot mybatis (三) 服務消費者(Feign)
test 它的 artifact color tor 實現 特性 -- pac 一、Feign簡介 Feign是一個聲明式的偽Http客戶端,它使得寫Http客戶端變得更簡單。使用Feign,只需要創建一個接口並註解。它具有可插拔的註解特性,可使用Feign 註解和JAX-
springcloud 服務消費者(Feign)錯誤集錦
【前言】 最近在看方誌朋的spingcloud教程,把我遇到的錯誤分享給大家。 【過程】 按照方老師的教程一步步的往下進行之後遇到的第一個錯誤就是@EnableFeignClients註解無法識別,多方查閱部落格 ,大部分人給出的建議都是在pom檔案中新增如下資訊: