OpenFeign远程调用详解【微服务篇】

目录

[一 什么是openfeign](#一 什么是openfeign)

[二 怎么使用](#二 怎么使用)

1.导入依赖

2.编写FeignClient接口

3.使用注解开启openfeign功能


一 什么是openfeign

在使用之前,我们需要先知道openfeign是什么?以及它的功能是什么?在哪里需要使用它。那么接下来我们先通过一张流程图来进行一个了解。

这是一个我们发送请求到controller,然后服务器接收我们的请求,但是因为我们使用的是微服务,也就是各个服务分开独立 。我的初始请求是请求到服务器1,但是现在我需要服务器2中的数据,那么我需要向服务器2 发送请求来获得我需要的数据。而两个服务器之间如何发送请求?这就是openfeign的功能。

二 怎么使用

那么了解了openfeign之后,我们就来看看如何使用它。

1.导入依赖

openfeign需要把导入两个依赖,一个是openfeign,一个负载均衡,因为openfeign在发送请求的时候需要对集群服务使用负载均衡算法得到最终发送请求的服务实例。

XML 复制代码
        <!--OpenFeign -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
       
        <!--负载均衡-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-loadbalancer</artifactId>
        </dependency>

2.编写FeignClient接口

java 复制代码
package com.feisi.clients;
import com.fei.pojo.User;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * 用户http的客户端接口
 */
@RequestMapping("user")
@FeignClient("user-service")    //@FeignClient 表示该接口是OpenFeign的客户端接口
public interface UserClient {
    @GetMapping("{id}")
    public User queryById(@PathVariable("id") Integer id);
}

3.使用注解开启openfeign功能

最后只需要在启动类使用注解@EnableFeignClients("com.feisi.clients")来开启这个注解,括号里面填的是你的上面那个接口的全限定名,这样才能扫描到。

相关推荐
月落星还在1 小时前
Spring MVC 与 Spring Boot:从“手动挡”到“自动驾驶”的进化论,兼谈前后端分离的哲学
spring boot·spring·云原生·mvc
像我这样帅的人丶你还2 小时前
🚀大文件上传的那些事
前端·javascript·架构
CaffeinePro2 小时前
四⼤极简架构原则KISS/DRY/YAGNI/LOD
设计模式·架构
Dreamland工坊2 小时前
从AI 视频到可用资产:聊浏览器端图像编辑器的架构设计
架构
传感器与混合集成电路2 小时前
基于FPGA与ADC协同架构的高密度数据采集模块设计原理与应用场景分析
fpga开发·架构
蜀道山老天师2 小时前
从零读懂 K8s:核心概念、集群架构与工作原理
容器·架构·kubernetes
zlinear数据采集卡3 小时前
2mV纹波的代价:硬核拆解ZLinear模拟前端放大器与正负可调电源设计
arm开发·单片机·嵌入式硬件·fpga开发·架构·开源
阳明山水3 小时前
TimesFM与Moirai MoE零样本预测解析
人工智能·深度学习·算法·机器学习·架构
Database_Cool_4 小时前
数据库性能不够用,升级到什么方案好?阿里云 PolarDB(云原生数据库领导者,兼容 MySQL/PostgreSQL/Oracle)平滑升级与百倍弹性
数据库·阿里云·云原生
霸道流氓气质4 小时前
微服务架构核心概念业务示例
微服务·云原生·架构