Ribbon和Feign的对比-带简易例子
Ribbon和Feign的对比-带简易例子
- Ribbon和Feign的对比
- 由一个简单的例子来说明
- 整体项目结构
- 通过Ribbon,A来调用B的服务
- 服务提供者B中书写简易示例:
- 服务调用者A中调用B的示例代码:
- 通过Feign,A来调用B的服务
- 服务提供者B中书写简易示例:
- 服务调用者A中调用B的示例代码:
- 总结
- 工程项目源码
Ribbon和Feign的对比
Ribbon和Feign都是SpringCloud中的基于 HTTP 和 TCP 客户端 的软负载均衡的工具。
Feign 是在 Ribbon的基础上进行了一次改进,是一个使用起来更加方便的 HTTP 客户端。
采用接口的方式, 只需要创建一个接口,然后在上面添加注解即可 ,将需要调用的其他服务的方法定义成抽象方法即可, 不需要自己构建http请求。
两者要实现负载均衡都需要依托于eureka注册中心但也可以不借助注册中心,这种方式还没有尝试过。
由一个简单的例子来说明
整体项目结构
eureka-server(注册中心)
eureka-service-b(服务提供者B)
eureka-service-b-api(服务提供者B标准API和基础POJO)
feign-client-demo(服务调用者-Feign方式)
ribbon-client-demo(服务调用者-Ribbon方式)
通过Ribbon,A来调用B的服务
服务提供者B中书写简易示例:
服务提供者不需要做额外配置,正常书写暴露API请求即可
服务调用者A中调用B的示例代码:
关键部分代码
TestController.java
@RestController
public class TestController {@Autowiredprivate RestTemplate restTemplate;private static final String REST_URL_PREFIX = "http://EUREKA-SERVICE-B";@GetMapping("/ribbon/test")public List<Test> listTest(@RequestParam("id") String id){ParameterizedTypeReference<List<Test>> typeReference = new ParameterizedTypeReference<List<Test>>() {};return restTemplate.exchange(REST_URL_PREFIX+"/tests?id="+id, HttpMethod.GET,null,typeReference).getBody();}
}
Config.java
@Configuration
public class Config {@Bean@LoadBalancedpublic RestTemplate restTemplate(){return new RestTemplate();}
}
通过Feign,A来调用B的服务
服务提供者B中书写简易示例:
服务提供者需要对eureka-service-b-api中新增ServiceFeignClient.java
@FeignClient(value = "EUREKA-SERVICE-B")
public interface ServiceFeignClient {@GetMapping("/tests")List<Test> listTest(@RequestParam("id") String id);
}
服务调用者A中调用B的示例代码:
关键部分代码
TestController.java
@RestController
public class TestController {@Autowiredprivate ServiceFeignClient serviceFeignClient;@GetMapping("/feign/test")public List<Test> listTest(@RequestParam("id") String id){return serviceFeignClient.listTest(id);}
}
总结
从上面来看吧,功能都一样,看代码量的话也差不多,区别就在于,ribbion的方式,服务调用者和服务提供者需要通过接口文档进行沟通交流。
feign的方式的话,接口文档可以省了。
工程项目源码
https://gitee.com/eyesopen/feign-and-ribbion-test
Ribbon和Feign的对比-带简易例子相关推荐
- Ribbon和Feign区别在哪
先说一下负载均衡:服务访问量忒大,一个服务器顶不住,服务器一崩那不凉了,怎么办--多用几个服务器,使单个服务器承受的访问量分散开,通过调度算法让他们都有休息的时间,就算有一个服务器凉了,至少还有其他的 ...
- Spring Cloud中Hystrix、Ribbon及Feign的熔断关系是什么?
导读 今天和大家聊一聊在Spring Cloud微服务框架实践中,比较核心但是又很容易把人搞得稀里糊涂的一个问题,那就是在Spring Cloud中Hystrix.Ribbon以及Feign它们三者之 ...
- SpringCloud系列之服务消费Ribbon和Feign区别
在业界,一般有两种微服务的实践方法:基于dubbo的微服务架构.基于Spring Cloud的微服务架构.从概念上来讲,Dubbo和Spring Cloud并不能放在一起对比,因为Dubbo仅仅是一个 ...
- spring cloud 微服务调用--ribbon和feign调用
这里介绍ribbon和feign调用两种通信服务调用方式,同时介绍如何引入第三方服务调用.案例包括了ribbon负载均衡和hystrix熔断--服务降级的处理,以及feign声明式服务调用.例子包括s ...
- 【springCloud搭建】四、集成ribbon+hystrix+feign
上篇文章传送门:[springCloud搭建]三.集成springCloudGateway网关 ribbon+hystrix+feign所需的第三方包 <!--feign服务通讯组件--> ...
- android自带蓝牙例子详解
相关参考网站:http://wenku.baidu.com/view/d901cc2d4b73f242336c5f87.html http://wenku.baidu.com/view/518414b ...
- 一个自带简易数据集的模拟线性分类器matlab代码——实验训练
一个自带简易数据集的模拟线性分类器matlab代码--实验训练 %%%% Tutorial on the basic structure of using a planar decision boun ...
- 从实例一步一步入门学习SpringCloud的Eureka、Ribbon、Feign、熔断器、Zuul的简单使用(附代码下载)
场景 SpringCloud -创建统一的依赖管理: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/102530574 Sprin ...
- ribbon和feign的区别
pring cloud的Netflix中提供了两个组件实现软负载均衡调用:ribbon和feign. Ribbon 是一个基于 HTTP 和 TCP 客户端的负载均衡器 它可以在客户端配置 rib ...
- springCloud负载均衡Ribbon和Feign的区别
1.什么是负载均衡: 负载均衡(Load Balance)是分布式系统架构设计中必须考虑的因素之一,它通常是指,将请求/数据[均匀]分摊到多个操作单元上执行,负载均衡的关键在于[均匀]. 2.常见的负 ...
最新文章
- AI如何设计,才能人类利益最大化?
- 编程爱好者学vb还是python-高手,这是高手!推荐几个我常看的顶级技术类公众号...
- C++ sizeof总结
- 树状数组基础原理与模板
- Git初始化配置以及配置github
- alpha冲刺day8
- MATLAB gui 欢迎界面 插入图片
- 拓端tecdat|把握出租车行驶的数据脉搏 :出租车轨迹数据给你答案!
- ResNet50及其Keras实现
- glib wpa_supplicant Unix上库编译错误解决与总结
- 微信小程序点餐系统需求分析与建模
- 【算法图解】 之 [二分查找法] 详解
- JVM内存溢出问题排查
- 干货 | 基于JMP的方差分析及两两比较的思路与实现
- 【CC3200AI 实验教程11】疯壳·AI语音人脸识别(会议记录仪/人脸打卡机)-AI语音系统架构
- 管理 - SWOT分析法
- 51单片机自学笔记引脚
- 【原创】常用元器件(电阻)选型之阻值识别-cayden20220910
- 自动驾驶中的多传感器融合
- 我记忆中的“集银社”
热门文章
- Oracle 归档模式的打开及关闭
- Android实现仿IOS带清空功能的文本输入框
- ERP选型需把握主动权!
- wordpress获取各类页面链接的函数总结
- java实现顺序表的增加,删除,查找,打印
- ThinkPHP统计某个分类的文章数目
- oracle 2500varchar,Oracle中的varchar和varchar2有什么区别?
- 保存文件 安卓_手机怎么解压zip文件 安卓手机zip文件怎么打开?
- linux 使用ssr客户端_React从CSR到SSR:第一篇
- 笔记本电脑怎么清理灰尘_笔记本电脑卡顿,运行慢,似中病毒,看这里 小白教你轻松搞定...