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")来开启这个注解,括号里面填的是你的上面那个接口的全限定名,这样才能扫描到。

相关推荐
阿坤带你走近大数据2 小时前
数仓架构的设计思路、模型选择依据、落地难点及解决方案的介绍
架构·管理·数仓·业务与技术融合
ftpeak2 小时前
Mooncake:以 KVCache 为中心的分离式 LLM 服务架构
人工智能·ai·架构·ai编程·ai开发
Agent手记5 小时前
制造业生产流程自动化,Agent需要具备哪些能力?深度拆解2026工业级智能体落地范式与核心架构
大数据·人工智能·ai·架构·自动化
Yunzenn6 小时前
深度分析字节最新研究cola-DLM 第 07 章:推理流水线逐行拆解 —— 从 prompt 到生成文本
人工智能·驱动开发·深度学习·chatgpt·架构·prompt·github
颖火虫盟主7 小时前
Linux 系统分层架构:从硬件通电到 systemd 进程管理
linux·运维·架构
ฅ ฅBonnie8 小时前
Hermes 与 Cloud Code/OpenClaw 架构对比分析及部署实践
人工智能·ai·架构·ai编程
实在智能RPA8 小时前
实在Agent针对金融行业Agent灾备与高可用是如何进行设计的?深度拆解金融级智能体的架构安全与连续性保障
人工智能·安全·ai·金融·架构
用户1558319968148 小时前
文件同步冲突技术根因与解决方案:Last-Write-Wins、OT、CRDT对比
云原生
callJJ9 小时前
Nacos 详解——从概念到实战
java·spring boot·spring·spring cloud·微服务·nacos
zhangfeng11339 小时前
主流推理模型架构的协议对比表格,和专利坑 专利埋雷
人工智能·语言模型·自然语言处理·架构·开源·开源协议