SpringCloud Ribbon负载均衡工具使用
作者:碰磕
Ribbon是Netflix的组件之一,负责注册中心的负载均衡,有助于控制HTTP和TCP客户端行为。Spring Cloud Netflix Ribbon一般配合Ribbon进行使用,利用在Eureka中读取的服务信息,在调用服务节点时合理进行负载
Spring Cloud Ribbon
是一个基于HTTP和TCP的客户端负载均衡工具
实操
创建两个provider,并且编写两个一样的接口,再创建一个consumer去访问该接口进行轮询调用
项目结构:
provider-01与provider-02都是创建Client
模块,并且创建controller
编写接口
@RestController public class ProviderController { @GetMapping("pengke") public String pengke(){ return "我是碰磕接口2222"; } }
@RestController public class ProviderController { @GetMapping("pengke") public String pengke(){ return "我是碰磕接口1111"; } }
consumer02模块则是使用ribbon
进行轮询调用接口
依赖:
<!-- ribbon依赖--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-ribbon</artifactId> <scope>2.2.9.RELEASE</scope> </dependency>
Application
启动类中编写一个@Bean
减少多次new该对象
关键注解:@LoadBalanced
/** *编写防止多次new * loadBalanced 会呗ribbon来操作 */ @Bean @LoadBalanced public RestTemplate restTemplate(){ return new RestTemplate(); }
controller
中编写接口用于访问另外两个模块的接口
由于在启动类中编写了RestTemplate
所以通过@Autowired
注入即可
通过ribbon
实现了通过访问http://服务名/请求地址
接口实现轮询访问另外两个模块的接口!
@Autowired private RestTemplate restTemplate; @GetMapping("testRibbon") public String testRibbon(String serviceName){ String result=restTemplate.getForObject("http://"+serviceName+"/pengke",String.class); return result; }
这就是ribbon
的应用~下一篇学习Feign(它集成了ribbon)
到此这篇关于SpringCloud Ribbon负载均衡工具使用的文章就介绍到这了,更多相关SpringCloud Ribbon内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!