首先给大家看下目录结构,比如要调用basicdata项目,需新建一个basicdata-api

一、引入fegin包至pom文件,如上图中pom文件

二、创建微服务调用的接口文件

@FeignClient(name = "fenjin-cloud-basicdata", configuration = FeignConfiguration.class, fallbackFactory = DeviceFallbackFactory.class)
public interface DeviceServiceApi {@RequestMapping(value = "/device/DeviceMonitorStatusId_count", method = {RequestMethod.POST})@ResponseBodypublic Result countByDeviceMonitorStatusId(@RequestBody Device device);@RequestMapping(value = "/device/DeviceMap_List", method = {RequestMethod.POST})@ResponseBodypublic Result DeviceMapList(@RequestBody Device device);
}

注:1.@FeignClient 声明调用服务  name:表示项目名称。fallbackFactory是创建的需要调用的接口的回滚工厂,用于服务失败后调用(大家可以查阅下这个注解的用法,有两种方式,一种是经过注册中心,一种不经过注册中心。我这里都经过注册中心)

2.另外这里的接口需要与调用的接口保持一致

3.另外需要在fenjin-cloud-basicdata启动类上加上@EnableFeignClients注解,如下图

三、创建微服务实现类,用于微服务调用时报回滚。如下图

@Slf4j
@Component
public class DeviceFallback implements DeviceServiceApi {@Setterprivate Throwable cause;@Overridepublic Result countByDeviceMonitorStatusId(Device device) {log.error("feign根据device统计设备状态为{}的信息失败:{}", device, cause);return Result.failed("根据设备状态统计服务不可用");}@Overridepublic Result DeviceMapList(Device device) {log.error("feign根据device获取设备列表为{}的信息失败:{}", device, cause);return Result.failed("根据设备监控状态获取列表服务不可用");}
}

四、创建回滚工厂类,用于回滚失败实例的创建

@Component
public class DeviceFallbackFactory implements FallbackFactory<DeviceServiceApi> {@Overridepublic DeviceServiceApi create(Throwable throwable) {DeviceFallback deviceFallback=new DeviceFallback();return deviceFallback;}
}

五、其他项目直接调用即可,直接调用导入basicdata-api包即可完成调用。如下图

springcloud:Fegin实现微服务间调用相关推荐

  1. 再见 Feign!推荐一款微服务间调用神器,跟 SpringCloud 绝配!

    在微服务项目中,如果我们想实现服务间调用,一般会选择Feign.之前介绍过一款HTTP客户端工具Retrofit,配合SpringBoot非常好用!其实Retrofit不仅支持普通的HTTP调用,还能 ...

  2. springCloud - 第10篇 - 服务间调用追踪 (zipkin 的使用)

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 一. 在微服务系统中,不同应用服务可能会有各种不同的相互调用 . springcloud 集成了 z ...

  3. 2.微服务间调用ribbon

    实例:订单服务调用商品服务 在订单服务调用商品服务的时候,首先要考虑负载均衡策略,为了体现出轮巡的结果,我们在商品服务输出的地方加上端口号,以区分是哪个节点. 1.ribbon (消费者) a.创建s ...

  4. Feign实现微服务间调用返回stream

    今天来讲述一下fegin的调用返回stream,得到stream我们可以下载,写入到页面展示图片等: 我们就开始讲述一下: 服务提供者流接口 @RequestMapping(value = " ...

  5. spring cloud微服务之间调用Feign

    微服务之间调用Feign 1.在调用方添加feign依赖: <dependency><groupId>org.springframework.cloud</groupId ...

  6. 从0到1学SpringCloud——08 通过fegin实现微服务之间请求调用

    目录 一.前言 1.关于Fegin 2.注意事项 3.POM依赖 二.编码实现 1.启动类 2.创建openfeign接口 3.Controller代码 4.回调工厂 三.文件配置 1.Feign接口 ...

  7. Spring Cloud微服务之Feign——声明式服务间调用

    目录 写在前面 服务间调用常见的方案 方案一:HttpClient 方案二:RestTemplate 方案三:Feign 框架版本问题及可能遇到的坑 搭建服务注册中心 搭建服务1--service-a ...

  8. 微服务间的调用和应用内调用有啥区别

    摘要 目前大部分的系统架构都是微服务架构,就算没有注册中心.服务管理,也肯定是多个服务,单体服务比较少了. 大家平时需要在应用内调用rpc接口也比较多,那么有没有思考过微服务之间的调用和应用内直接调用 ...

  9. 【学习日记2023.6.9】之 SpringCloud入门(认识微服务_服务拆分和远程调用RestTemplate_Eureka注册中心_Ribbon负载均衡_Nacos注册中心)

    文章目录 SpringCloud 1. 认识微服务 1.1 单体架构 1.2 分布式架构 1.3 微服务 1.4 SpringCloud 1.5 总结 2. 服务拆分和远程调用 2.1 服务拆分原则 ...

最新文章

  1. Visual Studio 2017 - Windows应用程序打包成exe文件(1)- 工具简单总结
  2. SAP SD 常用表
  3. 子网掩码的计算与划分详解
  4. AndroidStudio导入项目一直卡在Building gradle project info最快速解决方案
  5. JS实现的ajax和同源策略
  6. 非空约束对数据更新的影响
  7. 【直播】如何设计性能更强大的深度卷积神经网络
  8. php与c语言流程控制语句,小蚂蚁学习C语言(7)——C语言流程控制之if
  9. wxWidgets:编写一个应用程序
  10. 面试中的 10 大排序算法总结
  11. 超70家影视传媒单位联合500余位艺人倡议:立即清理未经授权短视频
  12. 抓包分析360浏览器和360搜索配对使用的安全性-WEB服务端分析
  13. Sql 语句里 As后的竟然可以和前边的字段重名
  14. mysql数据库客户端--navicat for mysql 12中文破解版64位/32位 v12.0.29
  15. OpenCV_15绘制朱利亚(Julia)集合图形
  16. 一个微信关联管理多个腾讯云账号
  17. 在Android软按键中添加Menu键。
  18. 在智能家居音箱领域上的音频功放芯片IC
  19. 基于国产芯片的刀片服务器,至强E5核心助力 5万左右刀片服务器导购
  20. 什么是SpringMVC?SpringMVC之hello.jsp实现过程 问题:SpringMVC在JSP页面取不到ModelAndView中的值(已解决)

热门文章

  1. 小程序如何引入ttf字体文件
  2. JS运行过程,作用域和上下文的作用,自执行函数
  3. Android 9.0系统不允许Http协议访问网络突破
  4. 小米oj #4 最长连续数列
  5. 【华为新品】后置双镜头 华为荣耀6 Plus 8核芯片
  6. 集中力(focus)
  7. Python代码加壳加密pyinstaller生成的exe反编译
  8. lcs串 java,lcs
  9. word给公式自动编号
  10. python弹幕代码_使用python对隐秘的角落进行弹幕分析