OpenFeign如何实现微服务之间的调用(简单易学)

2023-05-16

Feign已经断更,所以Spring官方也推荐使用OpenFeign。

这里就不浪费时间介绍什么是Feign了,自行百度!


使用方法:

一、 pom引入依懒

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

 因为openFeign也整合了spring-cloud-starter-netflix-ribbon,所以它也带有负载均衡功能


二、yml配置文件中设置注册中心

根据自己的情况来,也可以使用单机版的注册中心测试。

eureka:
  client:
    register-with-eureka: false
    service-url:
      defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/

三、主启动类使用@EnableFeignClients注解进行激活

@SpringBootApplication
@EnableFeignClients(basePackages = {"com.sany"})//basePackages扫描哪些包(一般设置全扫),也可以不写使用默认的
public class OrderFeignMain80 {
    public static void main(String[] args) {
        SpringApplication.run(OrderFeignMain80.class, args);
    }
}

四、在service包(也可另起包 看自己)下新建的Feign接口,接口类上添加两个注解

@Component 必需要加,让spring扫描到

@FeignClient(value = "cloud-payment-service")其中的value是指被调用方(又叫暴露者;或者叫提供方)的服务名

@Component
@FeignClient(value = "cloud-payment-service")
public interface PaymentFeignService {

    @GetMapping("/payment/get/{id}")  //服务方提供的接口地址
    CommonResult<Payment> getPayment(@PathVariable("id") Long id);
}

 提供方的controller接口就不用我贴代码了吧!这里需要注意的是@GetMapping("/payment/get/{id}")这个接口地址要一致,不然就无法调用到;按住Ctrl + 鼠标左键能正常点过去就证明这个接口地址是对的。

服务降级    

新建一个类实现PaymentFeignService 接口;@FeignClient上增加fallback 属性指定实现类。

PaymentFeignService 接口(正常情况下会走这个接口调用另一个微服务接口)

@Component
@FeignClient(value = "cloud-provider-hystrix-payment", 
fallback = AaymentFallbackService.class)// AaymentFallbackService实现类
public interface PaymentFeignService {

    @GetMapping("/payment/get/{id}")  //服务方提供的接口地址
    CommonResult<Payment> getPayment(@PathVariable("id") Long id);
}

AaymentFallbackService 实现类(异常情况下会走这个类中的方法返回自己定义的错误信息)

@Component
public class AaymentFallbackService implements PaymentFeignService {

    @GetMapping("/payment/get/{id}")  //服务方提供的接口地址
    CommonResult<Payment> getPayment(@PathVariable("id") Long id){
        return xxx;// 返回自定义错误信息
    }
}

五、 在controller中申明后就可以在方法中进行调用了。

@Autowired
private PaymentFeignService feignService;

@GetMapping("/consumer/payment/get/{id}")
public CommonResult<Payment> getPaymentById(@PathVariable("id") Long id){
    return feignService.getPayment(id);
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OpenFeign如何实现微服务之间的调用(简单易学) 的相关文章

  • un7.23:Linux——在CentOS7上安装MySQL5.7。

    虚拟机的存在不仅让服务器更加稳定 xff0c 而且还大大提高了数据库的稳定性 xff0c 所以现在有很多开发人员将代码放到虚拟机上进行开发 xff0c 那么我们应该如何在虚拟机上安装数据库呢 xff1f 一 启动网卡 1 查看虚拟机ip 命
  • C语言爱心代码,红爱心送给您~爱心源码分享

    include lt stdio h gt include lt stdlib h gt int main int argc char argv float x y a for y 1 5 y gt 1 5 y 0 1 for x 1 5
  • <JDBC> 批量插入 的四种实现方式:你真的get到了吗?

    x1f6d2 本文收录与专栏 xff1a JDBC 专栏 x1f4e2 专栏目的是解释JDBC的关键点 xff0c 与各位一路同行 xff0c 会持续输出 xff0c 欢迎免费订阅 xff01 xff01 总有人间一两风 xff0c 填我十
  • <C++> 基于多态的职工管理系统(纯手写含源码)

    x1f6d2 本文收录于专栏 xff1a 大战C 43 43 x1f525 x1f4e2 专栏目的是对于C 43 43 的讲解 xff0c 重点的逐个击破 xff0c 会持续输出 xff0c 欢迎免费订阅 xff01 xff01 x1f35
  • <C++>解密 构造函数和析构函数

    x1f6d2 本文收录于专栏 xff1a 大战C 43 43 x1f4e2 专栏目的是对于C 43 43 的讲解 xff0c 重点的逐个击破 xff0c 会持续输出 xff0c 欢迎免费订阅 xff01 xff01 x1f354 彩蛋 xf
  • <C++> 一文详解 - 运算符重载

    x1f6d2 本文收录于专栏 xff1a 大战C 43 43 x1f4e2 专栏目的是对于C 43 43 的讲解 xff0c 重点的逐个击破 xff0c 会持续输出 xff0c 欢迎免费订阅 xff01 xff01 x1f354 彩蛋 xf
  • <C++>一文拿捏:文件操作

    x1f6d2 本文收录于专栏 xff1a 大战C 43 43 x1f4e2 专栏目的是对于C 43 43 的讲解 xff0c 重点的逐个击破 xff0c 会持续输出 xff0c 欢迎免费订阅 xff01 xff01 x1f354 彩蛋 xf
  • 关于Ubuntu20.04文件系统思考

    文章目录 问题产生Ubuntu文件系统中普通用户可读写地址Ubuntu文件系统Ubuntu文件系统详解一级目录二级目录 查找Ubuntu中软件安装位置Ubuntu修改文件权限 问题产生 使用electron框架开发桌面端跨平台软件时 xff
  • <JDBC>事务处理的剖析,及四种隔离级别

    x1f6d2 本文收录与专栏 xff1a JDBC 专栏 x1f4e2 专栏目的是解释JDBC的关键点 xff0c 与各位一路同行 xff0c 会持续输出 xff0c 欢迎免费订阅 xff01 xff01 抬头向前看 目录 事务处理 x1f
  • 牛客网刷题记录 || 指针

    x1f6d2 本文收录于专栏 xff1a 牛客网刷题记录 x1f4e2 专栏目的是对于刷题过程的记录 xff0c 题型的列举和讲解 xff0c 会持续输出 xff0c 欢迎免费订阅 xff01 xff01 这是牛客网刷题记录专栏第一篇博文
  • 猿创征文|<JDBC>多种开源数据库连接池

    x1f6d2 本文收录与专栏 xff1a JDBC 专栏 x1f4e2 专栏目的是解释JDBC的关键点 xff0c 与各位一路同行 xff0c 会持续输出 xff0c 欢迎免费订阅 xff01 xff01 注定要去的地方 xff0c 多晚都
  • 牛客网刷题记录 || 链表

    这是牛客网刷题记录专栏第一篇博文 xff0c 先给大家简单介绍一下牛客网 xff0c 牛客网是一个集笔面试系统 题库 课程教育 社群交流 招聘内推于一体的优质网站 xff0c 牛客网题库中包含几万道题目 xff0c 注重通过边学边练的模式揽
  • 牛客网刷题记录 || C++入门

    这是牛客网刷题记录专栏第五篇博文 xff0c 先给大家简单介绍一下牛客网 xff0c 牛客网是一个集笔面试系统 题库 课程教育 社群交流 招聘内推于一体的优质网站 xff0c 牛客网题库中包含几万道题目 xff0c 注重通过边学边练的模式揽
  • 牛客网刷题记录 || 结构体和类

    这是牛客网刷题记录专栏第五篇博文 xff0c 先给大家简单介绍一下牛客网 xff0c 牛客网是一个集笔面试系统 题库 课程教育 社群交流 招聘内推于一体的优质网站 xff0c 牛客网题库中包含几万道题目 xff0c 注重通过边学边练的模式揽
  • 牛客网刷题记录 || 运算符与分支

    这是牛客网刷题记录专栏第六篇博文 xff0c 先给大家简单介绍一下牛客网 xff0c 牛客网是一个集笔面试系统 题库 课程教育 社群交流 招聘内推于一体的优质网站 xff0c 牛客网题库中包含几万道题目 xff0c 注重通过边学边练的模式揽
  • 牛客网刷题记录 || 循环

    这是牛客网刷题记录专栏第七篇博文 xff0c 先给大家简单介绍一下牛客网 xff0c 牛客网是一个集笔面试系统 题库 课程教育 社群交流 招聘内推于一体的优质网站 xff0c 牛客网题库中包含几万道题目 xff0c 注重通过边学边练的模式揽
  • 2021年互联网大厂的中秋仪式感

    中秋节快到了 xff0c 就想起来去年互联网大厂的月饼礼盒大比拼 xff0c 来给大家盘点一下2021年互联网大厂的中秋礼盒 xff0c 等今年礼盒出了再一起看看 xff0c 咱吃不到 xff0c 就多看看 xff0c 提前祝大家中秋节快乐
  • Git从入门到项目实战,一篇文章吃透Git

    博主今天刚学完Git就来总结笔记了 xff0c Git好强大 xff0c 不愧是目前世界上最先进的分布式版本控制系统 即使再小的帆也能远航 目录 x1f50e Git版本控制 x1f525 常见版本控制工具 x1f525 版本控制分类 x1
  • Linux gzip gunzip(压缩与解压缩)命令

    gzip xff1a 压缩命令 格式 xff1a gzip 源文件 xff08 不保留源文件 xff09 例 xff1a 格式 xff1a gzip r 目录 xff08 只能压缩目录下的文件 xff0c 不能压缩目录 xff09 例 xf
  • 猿创征文|Spring5梦开始的地方:入门必看

    x1f6d2 本文收录与专栏 xff1a Spring5 专栏 x1f4e2 专栏目的是记录学习攻克难点 xff0c 与各位一路同行 xff0c 会持续输出 xff0c 欢迎免费订阅 xff01 xff01 阅己 xff0c 越己 xff0

随机推荐

  • 2022年互联网大厂的中秋仪式感

    续上篇2021年互联网大厂的中秋仪式感 xff0c 最新的2022年互联网大厂中秋仪式感来了 目录 中秋礼盒 x1f96e 创新乐知阿里巴巴腾讯字节跳动京东网易百度新浪美团哔哩哔哩小红书华为小米大疆知乎快手 中秋礼盒 x1f96e 创新乐知
  • 结构体的冒泡排序

    C 数组允许定义可存储相同类型数据项的变量 xff0c 结构是 C 编程中另一种用户自定义的可用的数据类型 xff0c 它允许您存储不同类型的数据项 首先要先定义结构体类型 xff0c 再定义相应的结构体变量 xff0c 定义结构体类型的一
  • ftp外网访问小知识

    ftp是一种处于应用层的用于文件传输的协议 是基于TCP协议的应用层协议 xff0c 用于在网络上传输文件 ftp协议较其他网络协议更为复杂 xff0c 与一般的C S应用不同点在于 xff1a 一般的C S应用程序只会建立一个Socket
  • Mybatis_plus使用自定义sql 查询并分页时,sql后自己添加LIMIT ? OFFSET?

    64 Select IPage lt Map gt select String batchId String type String tableName Page lt T gt page Page lt DLGMetaDataField
  • C语言程序设计课后习题:利润问题

    题目 xff1a 使用switch 或者 if 语句完成 注 xff1b 此代码没有问题但在qinglen下不会通过 企业发放的奖金根据利润提成 利润 I 低于或等于100000元时 奖金可提10 xff1b 利润高于100000元 低于2
  • Ubuntu显示lines 1-14/14(end)

    Ubuntu下载MySQL xff0c 运行MySQL时 xff0c 终端显示这个 xff0c 一直退出不了 xff0c 我查了之后以为是要你输入密码 xff0c 结果不行 xff0c 然后搜到按q键退出 xff0c md
  • 3Dslicer在windows下源码编译源码并打包程序亲测可用

    对于医疗图像数据可视化有一些比较成熟的开源软件库 xff0c 其中包括volview 2011年已经停止维护和更新 xff0c MITK xff08 德国非中科大版 xff09 xff0c 3Dslicer和ITK SNAP 3Dslice
  • mysql 8.0以上重置密码

    命令行都要以管理员运行 1 xff1a net stop mysql 停止mysql服务 2 xff1a mysqld console skip grant tables shared memory 启动MySQL服务的时候跳过权限表认证
  • 硬件iic与软件iic的正确使用

    MCU中常见的通讯方式 xff1a USART SPI CAN 485 Bluetooth WIFI 4G xff0c 而IIC是除这些外另一种通讯方式 对于STC的MCU只能用软件IIC xff0c 对于stm8和stm32的MCU可以用
  • Linux连接外网

    1 右键虚拟机 xff0c 选择设置 2 点击网络适配器 xff0c 选择NAT模式 xff0c 点击确认 xff0c 返回 3 点击右上角区域 xff0c 点击小圆圈有钳子样的图标 xff0c 进入设置界面 xff0c 点击网络并打开 4
  • C基础 输入一个日期判断是否为闰年 并计算是这一年的第几天

    1 首先要搞清闰年的判断方法 闰年 xff1a xff08 1 xff09 如果year能够被4整除 xff0c 但是不能被100整除 xff0c 则year是闰年 xff08 2 xff09 如果year能够被400整除 xff0c 则y
  • C语言经典题目50题

    程序1 题目 xff1a 有1 2 3 4个数字 xff0c 能组成多少个互不相同且无重复数字的三位数 xff1f 都是多少 xff1f 1 程序分析 xff1a 可填在百位 十位 个位的数字都是1 2 3 4 组成所有的排列后再去 掉不满
  • 用c语言多种实现快速排序(有完整代码带注释)

    快速排序是一种把大问题分成小问题的算法 它的目的是把一个无序的数组变成有序的数组 它的思想如下 xff1a 首先选择数组的第一个数作为 中间值 然后把数组分成两半 xff0c 左边的数都比中间值小 xff0c 右边的数都比中间值大 对左边和
  • MySQL 8.0.29 设置和修改默认密码

    MySQL 8 0 29 设置和修改默认密码 修改密码 xff1a 登录时因为你没设置root的初始密码 xff0c 导致报错 密码以加密的形式存储在mysql数据库中的user表中的authentication string字段中 参考链
  • Manjaro Linux / Arch Linux 换源命令

    span class token function sudo span pacman mirrors i c China m rank 输入密码 xff0c 选择最快的源
  • C语言中形参和实参对类型的要求

    实参 xff1a 常量 变量 表达式 函数等任意类型 形参 xff1a 变量 xff0c 在被定义的函数中 xff0c 必须指定形参的类型 形式参数就是定义函数名和函数体时需要用的参数 xff0c 目的是用来接收调用该函数时传递的参数 实际
  • 位操作符【左移、右移、按位取反、按位与、按位或、按位异或】【详解】

    本期介绍 x1f356 主要介绍 xff1a 位操作符有哪些 xff0c 位操作符操作的对象 xff0c 整数在内存中是如何存放的 xff0c 有哪些位操作符 xff0c 各自又都具备何种功能 x1f440 文章目录 一 前言二 整数在内存
  • ceph (cephadm)集群部署

    ceph 集群部署 cephadm 方法1 xff1a ansible ceph ansible使用Ansible部署和管理Ceph集群 xff08 1 xff09 ceph ansible被广泛部署 xff08 2 xff09 ceph
  • Maven项目中pom.xml文件被Ignored(忽略)的解决办法问题

    出现的原因 xff1a 新创建的Maven项目与之前被删除的Maven项目重名了 xff1b 由于相同名称的Module在之前被创建过 xff0c 因此在IDEA中留有痕迹 重新创建一个新的同名Module会让IDEA误以为是之前被Disa
  • OpenFeign如何实现微服务之间的调用(简单易学)

    Feign已经断更 xff0c 所以Spring官方也推荐使用OpenFeign 这里就不浪费时间介绍什么是Feign了 xff0c 自行百度 xff01 使用方法 xff1a 一 pom引入依懒 lt dependency gt lt g