SpringCloud OpenFeign概述與使用
OpenFeign概述
OpenFeign 可以聲明式的實(shí)現(xiàn)微服務(wù)之間的調(diào)用,我們只需要向調(diào)用接口一樣,對(duì) FeignClient 直接調(diào)用即可。
若不采用 OpenFeign,不同微服務(wù)之間的遠(yuǎn)程 API 調(diào)用通過Ribbon + RestTemplate實(shí)現(xiàn);而采用 OpenFeign 后直接采用接口 + 注解的方式即可實(shí)現(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 接口,在接口中定義方法實(shí)現(xiàn)對(duì)其他微服務(wù)的調(diào)用
注意:
@FeignClient括號(hào)里的值為被調(diào)用的微服務(wù)在 nacos 注冊(cè)中心的注冊(cè)服務(wù)名;- 定義的方法上的請(qǐng)求及路徑需要與被調(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)用的方法
在兩個(gè)被調(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)用~";
}
}
支付模塊修改完成后,直接啟動(dòng)服務(wù)
啟動(dòng)服務(wù)調(diào)用模塊
在 order8005 模塊的啟動(dòng)類上添加注解,標(biāo)明 FeignClient 包的位置
@SpringBootApplication
@EnableFeignClients(basePackages = "com.zqf.service")
public class OrderStart8005 {
public static void main(String[] args) {
SpringApplication.run(OrderStart8005.class);
}
}
啟動(dòng)訂單微服務(wù)
測試
所有微服務(wù)啟動(dòng)成功后,使用 postman 進(jìn)行測試

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

