浅学习使用Ribbon 和 Feign的理解和使用

 

Ribbon是Netflix公司开源的一个负载均衡的项目,是一个基于 HTTP、TCP的客户端负载均衡器.

什么是负载均衡?

        负载均衡是微服务架构中必须使用的技术,通过负载均衡来实现系统的高可用、集群扩容等功能。负载均衡可通过
硬件设备及软件来实现,硬件比如:F5、Array等,软件比如:LVS、Nginx等。

常用的负载均衡算法有: 轮循、随机、加权轮循、加权随机、地址哈希等方法。

上面的都是服务端负载均衡,客户端负载均衡与服务端负载均衡的区别在于客户端要维护一份服务列表,Ribbon从
Eureka Server获取服务列表,Ribbon根据负载均衡算法直接请求到具体的微服务,中间省去了负载均衡服务器。

   

         

1. 导入Ribbon依赖

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-ribbon</artifactId><version>1.3.6.RELEASE</version>
</dependency>

2. application.yml中配置ribbon参数

ribbon:MaxAutoRetries: 2 #最大重试次数,当Eureka中可以找到服务,但是服务连不上时将会重试MaxAutoRetriesNextServer: 3 #切换实例的重试次数OkToRetryOnAllOperations: false #对所有操作请求都进行重试,如果是get则可以,如果是post,put等操作没有实现幂等的情况下是很危险的,所以设置为falseConnectTimeout: 5000  #请求连接的超时时间ReadTimeout: 6000 #请求处理的超时时间

3.负载均衡测试
1. 启动两个负载均衡服务时,注意端口要不一致. 启动完成观察Eureka Server的服务列表。

2.注入RestTemplate,添加 @LoadBalanced 注解。

       

3.测试。 rest请求路径上更换服务名

           

Feign介绍

Feign是Netflix公司开源的轻量级rest客户端,使用Feign可以非常方便的实现Http 客户端。Spring Cloud引入
Feign并且集成了Ribbon实现客户端负载均衡调用。

 

 <!-- 引入Feign依赖--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency>

          

   启动类中加入@EnableFeignClients注解,并进行测试。

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

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

相关文章

OSI七层协议模型

OSI七层协议模型 1. OSI七层和TCP/IP四层的关系 OSI引入了服务、接口、协议、分层的概念&#xff0c;TCP/IP借鉴了OSI的这些概念建立TCP/IP模型。OSI先有模型&#xff0c;后有协议&#xff0c;先有标准&#xff0c;后进行实践&#xff1b;而TCP/IP则相反&#xff0c;先有协议和…

Centos启动卡住,starting auditd: [failed]

具体原因可能是什么权限导致的吧 &#xff0c;母鸡啊 解决方式&#xff1a; 在重启客户端时输入 i 然后输入 a &#xff0c;在<_root KEYBOARDTYPEpc KEYTABLEus rd_NO_DM后空格输入 single再 enter就进入了

FPGA中计数器设计探索

FPGA中计数器设计探索&#xff0c;以计数器为32位为例&#xff1a; 第一种方式&#xff0c;直接定义32位计数器。 reg [31:0]count; quartus ii 下的编译&#xff0c;资源消耗情况。 85C模型下的时钟频率。 0C模型下的时钟频率。 chip planner下资源分布情况。 第二种方式&…

存储过程存储函数得简记(转)

oracle中的存储过程和存储函数的区别&#xff08;尊重劳动成果&#xff0c;转载请注明出处&#xff1a;https://blog.csdn.net/qq_39778516/article/details/84033710 consistencely的博客&#xff09; 1.存储过程 存储过程&#xff08;Stored Procedure&#xff09;是在大型数…

MongoDB服务无法注册

按此步骤执行出现无法注册服务名问题时&#xff0c;如下解决&#xff1a; 方法一&#xff1a; 方法二&#xff1a; 如果还是无法解决的话&#xff0c;首先卸载MongoDB&#xff0c;然后清MongoDB注册表&#xff0c;重新安装&#xff0c;然后按一开始那样执行mongo.conf文件&am…

006 list类型

一.概述 在redis之中,我们需要把list视为一个链表,存储的元素我们需要视为一个字符串(可以是序列化的字符串). list的核心就是 : 有序的字符串列表. 二 .基本操作 [1]lpush , rpush 从左方向和右方向追加元素 [2] 查询指定范围的数据 --- lrange index last_indezx [3] 获取指…

WIN10注册表出现“无法删除所有指定的值”解决办法

win --> cmd 右键以管理员运行 --> regedit 进入注册表 --> 找到你要删除的值的所属文件夹 --> 右键权限 -->修改为完全控制

SpringBoot学习笔记(8):事物处理

SpringBoot学习笔记&#xff08;8&#xff09;&#xff1a;事物处理 快速入门 在传统的JDBC事务代码开发过程中&#xff0c;业务代码只有一部分&#xff0c;大部分都是与JDBC有关的功能代码&#xff0c;比如数据库的获取与关闭以及事务的提交与回滚、大量的try..catch..finally…

Nignx出现failed (3: The system cannot find the path specified)问题

一般这个问题都是都是nginx.conf配置出现问题导致的。 仔细检查location配置等信息&#xff0c;核对error.log中显示路径是否产生跳转&#xff0c;核对跳转路径是否正确来推断自己配置是否有误。 如果无误的话。 查看window下或linux下的nginx进程是否出现多个进程&#xff…

nignx处理Html中SSI技术代码注意事项

当我们将服务部署至Nignx中时&#xff0c;想要页面静态化后的Html文件使用SSI技术获取包含页面内的js代码时。 需要注意的是&#xff0c;当我们从nignx访问动态地址时&#xff0c;返回的页面结果一定要是html页面才可以支持SSI技术&#xff0c;jsp是不支持SSI的&#xff0c;所…

Mybatis异常Invalid bound statement (not found): com.xxx.xxxMapper.selectxxxByxxx

这个异常问题的解决办法就是首先&#xff0c;检查Mapper文件配置是否有误&#xff0c;返回类型和bean是否对应。如果bean和mapper文件都无问题&#xff0c;可以检查一下Mapper注解的导包问题&#xff0c;导包错误也会导致这个问题

如何计算并测量ABAP及Java代码的环复杂度Cyclomatic complexity

代码的环复杂度(Cyclomatic complexity&#xff0c;有的地方又翻译成圈复杂度)是一种代码复杂度的衡量标准&#xff0c;在1976年由Thomas J. McCabe, Sr. 提出。 在软件测试的概念里&#xff0c;圈复杂度用来衡量一个模块判定结构的复杂程度&#xff0c;数量上表现为独立线性路…

利益相关者课后作业

课堂讨论记录&#xff1a; 1.目标&#xff1a;创新平台填报系统设计 2.形式&#xff1a;结构化的形式 3.基本规则&#xff1a;自由&#xff0c;平等&#xff0c;公正 4.个人想法 第一轮 司宇航&#xff1a;一定要关注高层利益相关者的利益。 刘宏琦&#xff1a;满足填报人的大部…

ZuulFilter的使用场景

各个微服务的访问需要网关统一管理进行跳转&#xff0c;而在访问网关时&#xff0c;我们可以进行增强功能&#xff0c;通过过虑器实现请求过虑&#xff0c;身份校验 等。 /*** 身份校验过滤器*/ Component public class LoginFilter extends ZuulFilter {AutowiredAuthServic…

机器学习实战 k-近邻算法 手写识别系统

转载于:https://www.cnblogs.com/crysa/p/8735556.html

Fegin拦截器解决各微服务之间数据下沉

上篇说了当前端访问微服务网关&#xff0c;借助ZuulFilter过滤器来过滤所有请求&#xff0c;获取request&#xff0c;判断cookie是否有身份短令牌&#xff0c;request的header中是否有Jwt令牌&#xff0c;redis中是否有Jwt令牌。但是这个数据传递只能是前端访问微服务时&#x…

免杀原理与实践

杀软原理 目前杀毒软件的原理主要有3种&#xff1a; 1.引擎与病毒库的交互作用&#xff0c;通过特征码提取与病毒库中的特征码进行比对识别病毒。 2.启发式Heuristic&#xff0c;通过程序的一些行为和特征来判断。 3.在虚拟机技术上的启发式&#xff0c;通过建立一个虚拟环境运…

分布式事务的理解和解决方法

什么是分布式事务&#xff1f; 什么是分布式系统?部署在不同结点上的系统通过网络交互来完成协同工作的系统。 比如&#xff1a;充值加积分的业务&#xff0c;用户在充值系统向自己的账户充钱&#xff0c;在积分系统中自己积分相应的增加。充值系统和积分系统是两个不同的系统…

delphi 搭建安卓开发环境

delphi 搭建安卓开发环境 DELPHI安装成功以后&#xff0c;怀着激动的心情&#xff0c;使用IDE向导生成安卓DEMO程序&#xff0c;BUILD&#xff0c;想马上看到编译成功的提示&#xff0c;结果报错&#xff0c;不由得傻眼了。DELPHI怎么这么差&#xff1f; 原来DELPHI安装成功以后…

ServiceComb抛出llegalStateException: The schema(id=[xxx]) ...异常解决办法

其实这个异常就是无法说你启动的这个servicecomb实例和注册中心的实例不匹配&#xff0c;并且信息已经被占用。 所以解决办法就是&#xff1a;启动注册中心前端界面进程&#xff0c;进入界面&#xff0c;然后kill掉你要启动的servicecomb实例在微服务注册中心的实例。然后重新…