SpringCloud OpenFeign概述與使用
OpenFeign概述
OpenFeign 可以聲明式的實現(xiàn)微服務(wù)之間的調(diào)用,我們只需要向調(diào)用接口一樣,對 FeignClient 直接調(diào)用即可。
若不采用 OpenFeign,不同微服務(wù)之間的遠(yuǎn)程 API 調(diào)用通過Ribbon + RestTemplate實現(xiàn);而采用 OpenFeign 后直接采用接口 + 注解的方式即可實現(xiàn)。
OpenFeign使用
本文仍然使用SpringCloud – Nacos中所創(chuàng)建的 order 訂單微服務(wù)與 payment 支付微服務(wù)為例,在訂單微服務(wù)中調(diào)用支付微服務(wù)的方法。
引入依賴
首先在 order 微服務(wù)中引入 OpenFeign 的依賴
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
編寫服務(wù)調(diào)用Service接口
創(chuàng)建 Service 接口,在接口中定義方法實現(xiàn)對其他微服務(wù)的調(diào)用
注意:
@FeignClient括號里的值為被調(diào)用的微服務(wù)在 nacos 注冊中心的注冊服務(wù)名;- 定義的方法上的請求及路徑需要與被調(diào)用服務(wù)的相應(yīng)方法匹配;
@FeignClient("nacos-payment-provider")
public interface PaymentService {
/**
* 測試調(diào)用Payment
* @return 調(diào)用結(jié)果
*/
@GetMapping("/paymentFeign/test")
String feignTest();
}
編寫被調(diào)用的方法
在兩個被調(diào)用的 payment 服務(wù)中編寫業(yè)務(wù)處理邏輯,此處為方便,直接返回相應(yīng)的字符串
paymeng8001
@RestController
@RequestMapping("/paymentFeign")
public class PaymentFeignController8001 {
@GetMapping("/test")
public String test() {
return "8001支付模塊test()方法被調(diào)用~";
}
}
payment8002
@RestController
@RequestMapping("/paymentFeign")
public class PaymentFeignController8002 {
@GetMapping("/test")
public String test() {
return "8002支付模塊test()方法被調(diào)用~";
}
}
支付模塊修改完成后,直接啟動服務(wù)
啟動服務(wù)調(diào)用模塊
在 order8005 模塊的啟動類上添加注解,標(biāo)明 FeignClient 包的位置
@SpringBootApplication
@EnableFeignClients(basePackages = "com.zqf.service")
public class OrderStart8005 {
public static void main(String[] args) {
SpringApplication.run(OrderStart8005.class);
}
}
啟動訂單微服務(wù)
測試
所有微服務(wù)啟動成功后,使用 postman 進(jìn)行測試

多次發(fā)送請求,可以看到兩個支付微服務(wù) payment 被輪流調(diào)用,即 openfeign 自帶負(fù)載均衡的功能行測試
到此這篇關(guān)于SpringCloud OpenFeign概述與使用的文章就介紹到這了,更多相關(guān)SpringCloud OpenFeign內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
關(guān)于SpingMVC的<context:component-scan>包掃描踩坑記錄
這篇文章主要介紹了關(guān)于SpingMVC的<context:component-scan>包掃描踩坑記錄,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03
詳解spring cloud hystrix請求緩存(request cache)
這篇文章主要介紹了詳解spring cloud hystrix請求緩存(request cache),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-05-05
SpringBoot+JavaMailSender實現(xiàn)騰訊企業(yè)郵箱配置
這篇文章主要介紹了SpringBoot+JavaMailSender實現(xiàn)騰訊企業(yè)郵箱配置,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
Spring的@ConfigurationProperties注解詳解
這篇文章主要介紹了Spring的@ConfigurationProperties注解詳解,@ConfigurationProperties該注解是用來獲取yml或者properties配置文件的配置信息,下面根據(jù)一些配置信息給出案例代碼進(jìn)行講解,需要的朋友可以參考下2023-11-11
IDEA連接MySQL提示serverTimezone的問題及解決方法
很多朋友私聊小編,使用IDEA軟件連接MySQL數(shù)據(jù)庫時總是提示Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezone' property manually.的錯誤,小編就不一一回復(fù)大家了,下面小編把我的解決方法分享到腳本之家平臺,需要的朋友參考下吧2021-05-05
java中用float時,數(shù)字后面加f,這樣是為什么你知道嗎
這篇文章主要介紹了java用float時,數(shù)字后面加f,這樣是為什么你知道嗎?具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09
Mybatis-plus新版本分頁失效PaginationInterceptor過時的問題
這篇文章主要介紹了Mybatis-plus新版本分頁失效,PaginationInterceptor過時問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11

