springCloud:Ribbon实现客户端侧负载均衡-消费者整合Ribbon
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springCloud:Ribbon实现客户端侧负载均衡-消费者整合Ribbon相关的知识,希望对你有一定的参考价值。
一、简介
Ribbon是Netfix发布的负载均衡器,它有助于控制HTTP和TCP客户端的行为。为Ribbon配置服务提供者地址列表后,Ribbon就可基于某种负载均衡算法,自动地帮助服务消费者去请求。Ribbon默认为我们提供了很多的负载均衡算法,例如轮询、随机等,当然,也可以为Ribbon实现自定义的负载均衡算法。
在Spring Cloud中,当Ribbon与Eureka配合使用时,Ribbon可自动从Eureka Server获取服务提供者地址列表,并基于负载均衡算法,请求其中一个服务提供者实例。
二、为服务消费者整合Ribbon
2.1、引入ribbon依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-ribbon</artifactId> </dependency>
2.2、为RestTemplate添加@LoadBalanced注解(Application)
@Bean @LoadBalanced public RestTemplate restTemplate(){ return new RestTemplate(); }
2.3、调用其它微服务
@GetMapping("/user/{id}") public User findById(@PathVariable Long id) throws Exception { ServiceInstance serviceInstance = this.loadBalancerClient.choose("spring-ribbon-eureka-client2"); // 打印当前选择的是哪个节点 System.out.println("serviceId : " + serviceInstance.getServiceId()); System.out.println("hoost : " + serviceInstance.getHost()); System.out.println("port : " + serviceInstance.getPort()); System.out.println("============================================================"); if (null == id) { return null; } return this.restTemplate.getForObject("http://spring-ribbon-eureka-client2/" + id, User.class); }
说明:
1、spring-ribbon-eureka-client2是服务提供者注册到Eureka Server上的应用名称
2、本次测试开启了两个spring-ribbon-eureka-client2服务提供者,一个端口是8080,一个是8083
2.4、测试
访问:http://192.168.1.83:8082/user/1
效果:
本文出自 “我爱大金子” 博客,请务必保留此出处http://1754966750.blog.51cto.com/7455444/1947059
以上是关于springCloud:Ribbon实现客户端侧负载均衡-消费者整合Ribbon的主要内容,如果未能解决你的问题,请参考以下文章
SpringCloud系列五:Ribbon 负载均衡(Ribbon 基本使用Ribbon 负载均衡自定义 Ribbon 配置禁用 Eureka 实现 Ribbon 调用)
SpringCloud系列五:Ribbon 负载均衡(Ribbon 基本使用Ribbon 负载均衡自定义 Ribbon 配置禁用 Eureka 实现 Ribbon 调用)