SpringCloud中Ribbon怎么调用


这篇文章主要介绍“SpringCloud中Ribbon怎么调用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringCloud中Ribbon怎么调用”文章能帮助大家解决问题。Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。官方文档目前已进入维护状态,以后可以通过Open Feign作为替代方案负载均衡+RestTemplate,实现负载均衡调用负载均衡(Load Balance,LB),即将用户的请求平摊到多个服务上,从而达到系统的高可用(HA)负载均衡分为两种方案:集中式LB、进程内LB
即服务方和消费方之间使用独立的LB设施,由该设备负责把访问请求通过某种策略转发至服务提供方。比如说Nginx、Gateway、zuul等
负载均衡的算法集成到消费方,消费方在注册中心中获取可用地址,然后通过LB算法选择出一个合适的服务器。Ribbon就属于进程内LB,它只是一免费云主机域名个类库,集成于消费方进程,消费方通过它来获取到服务方提供的地址。Ribbon集成在spring-cloud-starter-netflix-eureka-client中,可以参考eureka的使用。在此基础上简单修改一下,就可以完成服务调用及负载均衡官网通过RestTemplate,可以实现HttpClient的功能,只需要给它提供一个url及返回类型,即可实现远程方法调用。
首先,将其加入到IOC容器中。@LoadBalanced表示开启负载均衡。也可以使用getForEntity()方法,获取整个响应,自己在响应中获取想要的内容。如果使用post方法,就将get改成post就好了。url,可以写具体的地址,表示直接调用该地址;也可以写在eureka的服务名,首先在eureka中获取该服务的所有地址,再通过LB选择一个。上面通过@LoadBalanced开启了负载均衡。默认使用轮询算法,也可以修改成其他算法。如果想让该算法只针对某个服务,则不能将其放在ComponentScan够得到的地方,否则会修改所有服务的负载均衡算法。因此,最好在外面再新建一个package,用来放这个LB在主启动类上,标识一下服务与算法直接的映射关系如果嫌这种方法麻烦,也可以使用配置文件的方法以默认的RoundRobinRule作为阅读的源码,其他的源码基本上很类似,只是修改的选择服务器的代码。RoundRobinRule父类为AbstractLoadBalancerRule,AbstractLoadBalancerRule实现了接口IRule
基本没什么作用,只是将公共的部分提取了出来进行实现。简单来说,就是通过一个计数器,实现了轮询简单来说,该方法就是根据目前的状态,选择一个服务器返回。简单来说,就是将目前的计数器+1取余,获取一个下标,并返回。为了避免高并发的危险,采用CAS的方法进行设置。关于“SpringCloud中Ribbon怎么调用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注百云主机行业资讯频道,小编每天都会为大家更新不同的知识点。

相关推荐: Angular需要状态管理吗

这篇文章主要讲解了“Angular需要状态管理吗”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起免费云主机域名来研究和学习“Angular需要状态管理吗”吧!在Angular中不是必须要状态管理框架。 首先在 Angular …

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 09/01 07:38
Next 09/01 07:39

相关推荐