目錄
- 第一章 OpenFeign介紹
- 1.1、什么是OpenFeign
- 1.2、為啥用OpenFeign
- 1.3、Fegin與OpenFeign
- 第二章 OpenFeign入門案例
- 2.1、專案準備
- 2.2、創建工程
- 2.3、匯入依賴
- 2.4、撰寫配置
- 2.5、主啟動類
- 2.6、撰寫物體
- 2.7、撰寫介面
- 2.8、呼叫介面
- 2.9、最終測驗
- 第三章 OpenFeign超時控制
- 3.1、超時控制介紹
- 3.2、設定超時時間
- 第四章 OpenFeign日志列印
- 4.1、日志列印介紹
- 4.2、日志列印級別
- 4.3、開啟日志列印
- 4.3.1、撰寫配置物件
- 4.3.2、撰寫配置屬性
- 4.4、測驗日志列印
配套資料,免費下載
鏈接:https://pan.baidu.com/s/1la_3-HW-UvliDRJzfBcP_w
提取碼:lxfx
復制這段內容后打開百度網盤手機App,操作更方便哦
第一章 OpenFeign介紹
1.1、什么是OpenFeign
OpenFeign為微服務架構下服務之間的呼叫提供了解決方案,OpenFeign是一種宣告式、模板化的HTTP客戶端,在Spring Cloud中使用OpenFeign,可以做到使用HTTP請求訪問遠程服務,就像呼叫本地方法一樣的,開發者完全感知不到這是在呼叫遠程方法,更感知不到在訪問HTTP請求,
1.2、為啥用OpenFeign
OpenFeign可以用來簡化HTTP的呼叫,
1.3、Fegin與OpenFeign

第二章 OpenFeign入門案例
2.1、專案準備
我們接下來的所有操作均是在Ribbon最后完成的工程上進行操作,相關代碼請到配套資料中尋找,

2.2、創建工程
在spring-cloud-study創建一個子專案名字叫:service-consumer9002
2.3、匯入依賴
pom.xml
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.16</version>
</dependency>
</dependencies>
2.4、撰寫配置
application.yaml
server:
port: 9002
spring:
application:
name: service-consumer9002
eureka:
client:
#是否將自己注冊到注冊中心,默認為 true
register-with-eureka: false
#表示 Eureka Client 間隔多久去服務器拉取注冊資訊,默認為 30 秒
registry-fetch-interval-seconds: 10
#設定服務注冊中心地址
service-url:
defaultZone: http://root:123456@eureka-server7001.com:7001/eureka/,http://root:123456@eureka-server7002.com:7002/eureka/
2.5、主啟動類
com.caochenlei.ServiceConsumer9002Application
@SpringBootApplication
@EnableFeignClients
public class ServiceConsumer9002Application {
public static void main(String[] args) {
SpringApplication.run(ServiceConsumer9002Application.class);
}
}
2.6、撰寫物體
com.caochenlei.pojo.Product
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Product implements Serializable {
private Integer pid;
private String name;
private Double price;
private Integer count;
}
2.7、撰寫介面
com.caochenlei.service.ProductFeignService
@Component
@FeignClient("SERVICE-PROVIDER")
public interface ProductFeignService {
/**
* 撰寫技巧,直接把服務提供者那一端的控制器方法的兩行拷貝過來,最后加一個分號就可以了,別的什么也不用動
*/
@RequestMapping("/provider/product/findAll")
public List<Product> findAll();
@RequestMapping("/provider/product/findByPid")
public String findByPid(@RequestParam("pid") Integer pid);
}
2.8、呼叫介面
com.caochenlei.controller.ProductController
@RestController
public class ProductController {
@Autowired
private ProductFeignService productFeignService;
@RequestMapping("/consumer/product/findAll")
public List<Product> findAll() {
return productFeignService.findAll();
}
@RequestMapping("/consumer/product/findByPid")
public String findByPid(@RequestParam("pid") Integer pid) {
return productFeignService.findByPid(pid);
}
}
2.9、最終測驗
(1)依次啟動以下注冊中心:
- eureka-server7001
- eureka-server7002
(2)依次啟動以下服務提供者:
- service-provider8001
- service-provider8002
(3)依次啟動以下服務消費者:
- service-consumer9002
(4)打開瀏覽器輸入地址:http://localhost:9002/consumer/product/findAll

(5)打開瀏覽器輸入地址:http://localhost:9002/consumer/product/findByPid?pid=1

第三章 OpenFeign超時控制
3.1、超時控制介紹
默認Feign客戶端只等待一秒鐘,如果服務端處理需要超過1秒鐘,導致Feign客戶端不想等待了,直接回傳報錯,
為了避免這樣的情況,有時候我們需要設定Feign客戶端的超時控制,
3.2、設定超時時間
打開application.yaml,添加如下配置:
ribbon:
ReadTimeout: 5000
ConnectTimeout: 5000
第四章 OpenFeign日志列印
4.1、日志列印介紹
Feign提供了日志列印功能,我們可以通過配置來調整日志級別,從而了解Feign中Http請求的細節,
簡單來說,就是對Feign介面的呼叫情況進行監控和輸出,
4.2、日志列印級別
- NONE:默認的,不顯示任何日志,
- BASIC:僅記錄請求方法、URL、回應狀態碼及執行時間,
- HEADERS:除了BASIC中定義的資訊之外,還有請求和回應的頭資訊,
- FULL:除了HEADERS中定義的資訊之外,還有請求和回應的正文及元資料,
4.3、開啟日志列印
4.3.1、撰寫配置物件
com.caochenlei.config.FeignConfig
@Configuration
public class FeignConfig {
@Bean
Logger.Level feignLoggerLevel() {
return Logger.Level.FULL;
}
}
4.3.2、撰寫配置屬性
application.yaml
logging:
level:
com.caochenlei.service: debug
4.4、測驗日志列印
重啟service-consumer9002,然后使用瀏覽器訪問地址:http://localhost:9002/consumer/product/findByPid?pid=1

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/254929.html
標籤:java
