springcloud:Fegin实现微服务间调用
首先给大家看下目录结构,比如要调用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实现微服务间调用相关推荐
- 再见 Feign!推荐一款微服务间调用神器,跟 SpringCloud 绝配!
在微服务项目中,如果我们想实现服务间调用,一般会选择Feign.之前介绍过一款HTTP客户端工具Retrofit,配合SpringBoot非常好用!其实Retrofit不仅支持普通的HTTP调用,还能 ...
- springCloud - 第10篇 - 服务间调用追踪 (zipkin 的使用)
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 一. 在微服务系统中,不同应用服务可能会有各种不同的相互调用 . springcloud 集成了 z ...
- 2.微服务间调用ribbon
实例:订单服务调用商品服务 在订单服务调用商品服务的时候,首先要考虑负载均衡策略,为了体现出轮巡的结果,我们在商品服务输出的地方加上端口号,以区分是哪个节点. 1.ribbon (消费者) a.创建s ...
- Feign实现微服务间调用返回stream
今天来讲述一下fegin的调用返回stream,得到stream我们可以下载,写入到页面展示图片等: 我们就开始讲述一下: 服务提供者流接口 @RequestMapping(value = " ...
- spring cloud微服务之间调用Feign
微服务之间调用Feign 1.在调用方添加feign依赖: <dependency><groupId>org.springframework.cloud</groupId ...
- 从0到1学SpringCloud——08 通过fegin实现微服务之间请求调用
目录 一.前言 1.关于Fegin 2.注意事项 3.POM依赖 二.编码实现 1.启动类 2.创建openfeign接口 3.Controller代码 4.回调工厂 三.文件配置 1.Feign接口 ...
- Spring Cloud微服务之Feign——声明式服务间调用
目录 写在前面 服务间调用常见的方案 方案一:HttpClient 方案二:RestTemplate 方案三:Feign 框架版本问题及可能遇到的坑 搭建服务注册中心 搭建服务1--service-a ...
- 微服务间的调用和应用内调用有啥区别
摘要 目前大部分的系统架构都是微服务架构,就算没有注册中心.服务管理,也肯定是多个服务,单体服务比较少了. 大家平时需要在应用内调用rpc接口也比较多,那么有没有思考过微服务之间的调用和应用内直接调用 ...
- 【学习日记2023.6.9】之 SpringCloud入门(认识微服务_服务拆分和远程调用RestTemplate_Eureka注册中心_Ribbon负载均衡_Nacos注册中心)
文章目录 SpringCloud 1. 认识微服务 1.1 单体架构 1.2 分布式架构 1.3 微服务 1.4 SpringCloud 1.5 总结 2. 服务拆分和远程调用 2.1 服务拆分原则 ...
最新文章
- Visual Studio 2017 - Windows应用程序打包成exe文件(1)- 工具简单总结
- SAP SD 常用表
- 子网掩码的计算与划分详解
- AndroidStudio导入项目一直卡在Building gradle project info最快速解决方案
- JS实现的ajax和同源策略
- 非空约束对数据更新的影响
- 【直播】如何设计性能更强大的深度卷积神经网络
- php与c语言流程控制语句,小蚂蚁学习C语言(7)——C语言流程控制之if
- wxWidgets:编写一个应用程序
- 面试中的 10 大排序算法总结
- 超70家影视传媒单位联合500余位艺人倡议:立即清理未经授权短视频
- 抓包分析360浏览器和360搜索配对使用的安全性-WEB服务端分析
- Sql 语句里 As后的竟然可以和前边的字段重名
- mysql数据库客户端--navicat for mysql 12中文破解版64位/32位 v12.0.29
- OpenCV_15绘制朱利亚(Julia)集合图形
- 一个微信关联管理多个腾讯云账号
- 在Android软按键中添加Menu键。
- 在智能家居音箱领域上的音频功放芯片IC
- 基于国产芯片的刀片服务器,至强E5核心助力 5万左右刀片服务器导购
- 什么是SpringMVC?SpringMVC之hello.jsp实现过程 问题:SpringMVC在JSP页面取不到ModelAndView中的值(已解决)