Ribbon、Feign和OpenFeign的区别来了

Ribbon

随着服务注册中心的安装完成后,客户端的负载均衡和服务的调用又是我们关注的话题。Ribbon可以实现客户端的负载均衡,

负载均衡LB

Load Balance(负载均衡):简单的说就是将用户的请求平摊的分配到多个服务器上,从而达到系统的HA(高可用)。常见的负载均衡工具有nginx、LVS,硬件上F5等

集中式LB

即在服务的消费方和提供方之间使用独立的LB设施,可以是硬件F5、也可以是软件nginx、LVS等,提供该设施将请求通过某种策略发送给服务提供方

进程内LB

将LB逻辑集成到消费方,消费方从服务注册中心查找服务列表,然后获取服务地址根据某种规则选出合适的服务器。Ribbon就是进程内LB,它只是一个类库,集成于消费方进程,消费者通过它来获取到服务提供方的地址

SpringCloud Ribbon是基于Netflix Ribbon实现的一套客户端的负载均衡工具,主要功能是提供了客户端的软件负载均衡算法和服务调用。Ribbon客户端组件提供了一系列完善的配置项例如连接超时、重试等。Ribbon目前也进入了维护模式

Ribbon 是 Netflix开源的基于HTTP和TCP等协议负载均衡组件

Ribbon 可以用来做客户端负载均衡,调用注册中心的服务

Ribbon的使用需要代码里手动调用目标服务,请参考官方示例:https://github.com/Netflix/ribbon

Nginx是服务器端的负载均衡,客户端的所有请求都会交给nginx,由nginx分发到各个服务器上。即负载均衡是由服务端实现的

Ribbon是本地的负载均衡,在调用微服务接口的时候,会在注册中心上获取注册服务信息列表之后缓存到JVM本地,从而在本地实现RPC远程服务调用的技术

 

 

Feign

Feign是Spring Cloud组件中的一个轻量级RESTfulHTTP服务客户端

Feign内置了Ribbon,用来做客户端负载均衡,去调用服务注册中心的服务。

Feign的使用方式是:使用Feign的注解定义接口,调用这个接口,就可以调用服务注册中心的服务

Feign支持的注解和用法请参考官方文档:https://github.com/OpenFeign/feign

Feign本身不支持Spring MVC的注解,它有一套自己的注解

Feign是Spring Cloud组件中的一个轻量级Restful的HTTP服务客户端,Feign内置了Ribbon,用来做客户端的负载均衡,去调用服务注册中心的服务。Feign的使用方式是:使用Feign的注解接口,调用这个接口,就可以调用服务注册中心的服务

 

 

OpenFeign

而OpenFeign则是可以让我们像调用Dubbo接口一样,实现面向接口编程

OpenFeign是Spring Cloud 在Feign的基础上支持了Spring MVC的注解,如@RequesMapping等等。
OpenFeign的@FeignClient可以解析SpringMVC的@RequestMapping注解下的接口,
并通过动态代理的方式产生实现类,实现类中做负载均衡并调用其他服务。

OpenFeign是Spring Cloud在Feign的基础上支持了SpringMVC的注解,如@RequestMapping等。OpenFeign的@FeignClient可以解析SpringMVC的@RequestMapping注解下的接口,并通过动态代理产生实现类,实现类中做负载均衡并调用其他服务

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/270613.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开发插件:分享10个非常实用IDEA插件,值得看一看!

IDEA是Java开发者必备的开发神器,今天小编给大家分享10个十分实用的插件,希望能对大家的实际开发工作提供帮助! 1. Jump To Line 快速导航插件 IntelliJ IDEA 调试器中的许多导航操作可让您在所需位置设置断点,但有时您只需单击即…

【bzoj1911】 Apio2010—特别行动队

http://www.lydsy.com/JudgeOnline/problem.php?id1911 (题目链接) 题意 给出一个序列,将序列分成连续的几段,每段的价值为a*s*sb*sc,其中a,b,c为给定常数,s为这一段中所有数之和。求最大价值和。 Solution 斜率优化。 dp方程&am…

网络知识:七类网线相关知识介绍

目录 一、什么是七类网线? 二、7类线与超6类线的区别 三、7类线用什么水晶头?如何制作水晶头? 四、七类网线的应用场景 今天给大家介绍一下七类网线相关的知识,希望对大家能有所帮助! 一、什么是七类网线? …

效率工具:分享7款实用的任务管理软件,值得收藏!

今天小编给大家分享10款实用的任务管理工具,欢迎推荐给身边的朋友,选择一款适合自己的利器吧。1.Microsoft To-Do 微软推出的一款效率管理神器Microsoft To-Do微软推出的有款简介并且实用的待办列表效率软件,实用它可以轻松规划您的每一天。无…

洛谷 2921 记忆化搜索 tarjan 基环外向树

洛谷 2921 记忆化搜索 tarjan 传送门 (https://www.luogu.org/problem/show?pid2921) 做这题的经历有点玄学,,起因是某个random题的同学突然发现了一个0提交0通过的题目,然后就引发了整个机房的兴趣,,然后&#xff0c…

单片机位寻址举例_单片机学习:51单片机寻址方式详解

51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel 8031单片机,后来随着Flash rom 技术的发展,8031单片机取得了长足的发展,成为了应用最广泛的8位单片机之一。51单片机是基础入门的一个单片机,并…

网络知识:LAN、WAN、WLAN相关知识介绍

今天给大家介绍一下LAN、WAN、WLAN相关知识,希望对大家能有所帮助! 一、什么是lan、wan和wlan口的区别? 很多朋友对lan口与wan及wlan的用途了解不清楚,尤其是在做路由器桥接时,wan口与lan的连接与设置容易弄混。 1、LA…

后端技术:mybatis中resultMap用法示例笔记

1、概念resultMap属于mybatis返回操作结果的一个标签,可以用来映射select查询出来结果的集合,主要作用是将实体类中的字段与数据库表中的字段进行关联映射。并且支持复杂的返回结果类型。2、使用场景2.1 属性映射当数据库字段和项目中的实体属性不一致时…

将mysql服务移除_怎么将mysql服务移除?

将mysql服务移除的方法:1、进入“控制面板->程序->卸载或更改程序”,删除mysql程序;2、删除MySQL文件夹下的【my.ini】文件,如果备份好,可以直接将文件夹全部删除 ;3、进入注册表,将相关M…

程序人生:程序员的9个层次,你属于哪个层次

目录 第一级:糟糕的程序员 第二级:菜鸟级程序员 第三级:码农 第四级:普通程序员 第五级:中级程序员 第六级:骨干程序员 第八级:著名程序员 第九级:祖师爷级别 . 第一级:糟…

SpringBoot定时任务实现的两种方式介绍

今天给大家介绍SpringBoot定时任务实现的几种方式,希望对大家能有所帮助!1、SpringTask 用法框架介绍:SpringTask是Spring自带的轻量级定时任务工具,相比于Quartz使用更加简单方便,并且不需要不需要引入其他依赖即可使…

Oracle12c:安装后新建用户及其默认表空间,并创建表测试

环境:操作系统:Windows Server2008 R2 X64 Oracle版本:12c 如何安装? -- oracle 12c在oracle linux 6.6 x64上的安装 -- Windows x64位下完美安装winx64_oracle_12c_database 如何使用DataBase Cofiguration Assistant 创建数据库…

数据库:Redis相关知识梳理

1、数据类型string(字符串):最基本的k-v存储 ,适合验证码、配置信息等list(列表):适合有序/固定的列表。比如行政区、字典表、消息队列等。set(集合):支持交集…

python线性回归分析看相关性_机器学习入门-相关分析之简单线性回归

一.什么是机器学习?简单来说,机器学习是一类算法的总称,这些算法企图从大量历史数据中挖掘出其中隐含的规律,并用于预测或者分类,更具体的说,机器学习可以看作是寻找一个函数,输入是样本数据&am…

前端:JS实现数组去重常用的六种方法介绍

今天给大家分享JS实现数组去重常用的六种方法&#xff0c;希望对大家能有所帮助&#xff01;定义变量let arr [20,6,13,20,100,8,13,11]; let newArr [];1、两层循环去重 for(let i 0;i < arr.length;i){for(let j i 1;j < arr.length;j){if(arr[i] arr[j]){arr.sp…

python自定义colorbar_python可视化 matplotlib画图使用colorbar工具自定义颜色

python matplotlib画图使用colorbar工具自定义颜色 colorbar(draw colorbar without any mapple/plot)自定义colorbar可以画出任何自己想要的colorbar&#xff0c;自由自在、不受约束&#xff0c;不依赖于任何已有的图(plot/mappable)。这里使用的是mpl.colorbar.ColorbarBase类…

路由器:什么是软路由,看完本篇文章你就懂了

今天小编给大家介绍一下软路由具体是什么&#xff0c;有什么实际用途&#xff0c;看完本篇你就懂了&#xff01; 一、软路由与硬路由概念介绍 硬路由&#xff1a;目前我们家里普遍使用的路由器&#xff0c;有厂家提供整体的解决方案&#xff0c;包括处理器、电源供应、嵌入式软…

Git服务器报错:host key for (ip地址) has changed and you have requested strict checking

一:报错提示 如下&#xff1a; WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that a host key …

软件:常用 Linux 软件汇总,值得收藏

目录 1、音频软件 2、聊天软件 3、数据备份与恢复 4、桌面个性化工具 5、开发必备 6、 电子书工具 7、 编辑器软件 8、教育软件 9、电子邮件软件 10、文件管理器 11、娱乐游戏 12、 图形工具 13、互联网浏览 14、 办公效率工具 15、 生产力效率工具 16、 安全防护 17、文件共享…