这篇文章主要为大家展示了如何实现Springcloud带负载均衡算法,内容简而易懂,希望大家可以学习一下,学习完之后肯定会有收获的,下面让小编带大家一起来看看吧。
<强>一前言强>
经过几篇的云系列文章,我想大家都有一个坚实的基础,后续的学习就会轻松很多,如果是刚刚来看的读者需要有尤里卡基础知识,或者查阅知识追寻者的云系列专栏,这篇文章主要讲解如何使用丝带实现web服务客户端调用,色带默认算法实现负载均衡等。
<强>二带简介强>
丝带是一个客户端负载均衡器,其能够整合不同的协议工具进行web服务API调用;
主要特色如下:
提供可插拔式的负载均衡整合服务发现故障弹性恢复云支持客户端整合加载负载均衡
核心工程如下:
带状铁心:整合其他模块实现负载均衡
ribbon-eureka:基于尤里卡客户实现负载均衡
ribbon-httpclient:包括jsr - 311实现休息加载负载均衡
<强>三eureka-client 强>
在之前的eureka-client工程中创建控制器包,并提供表现层接口,代码如下,然后启动eureka-client实例2个,分别为8090端口,8091端口;
/* * * @Author lsc * & lt; p>知识追寻者,丝带提供者restful api */@RestController 公开课RibbonProvidderController { @GetMapping (“zszxz/ribbon") 公共字符串testRibbon () { 返回“地狱我zszxz"; } }
<强>四ribbon-client 强>
4.1砰的一声。xml
在父工程低下添加新模块ribbon-client;原来的start-web依赖在父工程中已经引入,故带模块中不会再次引入该依赖;
& lt; dependencies> & lt; dependency> & lt; groupId> org.springframework.cloud & lt; artifactId> spring-cloud-starter-netflix-eureka-client & lt;/dependency> & lt; dependency> & lt; groupId> org.springframework.cloud & lt; artifactId> spring-cloud-starter-ribbon & lt;/dependency> & lt;/dependencies>
4.2配置
使用创建restTemplate进行客户端调用,故需要进行配置,并且在方法上加@LoadBalanced注解表示开启带负载均衡;
/* * * @Author lsc * & lt; p>ribbon-restTemplate配置& lt;/p> */@ configuration 公开课RibbonConfig { @ bean @LoadBalanced//表示用于负载均衡 创建RestTemplate创建RestTemplate () { 返回新创建RestTemplate (); } }
4.3服务创建服务类,并且使用创建restTemplate进行HTTP API调用;注意点是这边不使用ip端口,而是直接使用服务的应用名称eureka-client;
/* * * @Author lsc * & lt; p>& lt;/p> */@ service 公开课RibbonService { @ autowired 创建RestTemplate创建RestTemplate; 公共字符串testRibbon () { 返回restTemplate.getForObject (“http://eureka-client/zszxz/ribbon" String.class); } }
4.4控制器创建表现层类,用于浏览器访问;
/* * * @Author lsc * & lt; p>& lt;/p> */@RestController 公开课RibbonController { @ autowired RibbonService RibbonService; @GetMapping(“带/test") 公共字符串testRibbon () { 返回ribbonService.testRibbon (); } }
4.5带启动类
丝带的启动类也是作为尤里卡的客户端故需要加上@EnableEurekaClient注解;
/* * * @Author lsc * & lt; p>知识追寻者带启动类& lt;/p> */@SpringBootApplication @EnableEurekaClient 公开课RibbonApp { 公共静态void main (String [] args) { SpringApplication.run (RibbonApp.class, args); } }
4.6 application.yml
应用程序。8092年yml配置中使用端口,服务注册地址分别是得,peer2, peer3;
服务器: 端口:8092 春天: 应用程序: 名称:eureka-ribbon #应用名称 尤里卡: 客户: 服务url: #服务注册地址 defaultZone: http://peer1:10081尤里卡,http://peer2:10082/尤里卡,http://peer3:10083尤里卡/
4.7启动工程
分别启动客户机,服务器;如下图
4.8浏览器访问结果
浏览器结果如下,说明我们在eureka-ribbon中使用创建restTemplate结合带实现了HTTP方式从eureka-clinet模块中调用API;