springCloud(7):Ribbon实现客户端侧负载均衡-消费者整合Ribbon

简介:

一、简介

  Ribbon是Netfix发布的负载均衡器,它有助于控制HTTP和TCP客户端的行为。为Ribbon配置服务提供者地址列表后,Ribbon就可基于某种负载均衡算法,自动地帮助服务消费者去请求。Ribbon默认为我们提供了很多的负载均衡算法,例如轮询、随机等,当然,也可以为Ribbon实现自定义的负载均衡算法。

  在Spring Cloud中,当Ribbon与Eureka配合使用时,Ribbon可自动从Eureka Server获取服务提供者地址列表,并基于负载均衡算法,请求其中一个服务提供者实例。

二、为服务消费者整合Ribbon

2.1、引入ribbon依赖

1
2
3
4
< dependency >
    < groupId >org.springframework.cloud</ groupId >
    < artifactId >spring-cloud-starter-ribbon</ artifactId >
</ dependency >

2.2、为RestTemplate添加@LoadBalanced注解(Application)

1
2
3
4
5
@Bean
@LoadBalanced
public  RestTemplate restTemplate(){
    return  new  RestTemplate();
}

2.3、调用其它微服务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
@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 

效果:

 wKioL1lm9neDpTJeAAAVQZz47WE284.jpg

 wKioL1lm9uyhKyAPAAA9xMPUhGM811.jpg


本文转自我爱大金子博客51CTO博客,原文链接http://blog.51cto.com/1754966750/1947059如需转载请自行联系原作者

我爱大金子
相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
1月前
|
负载均衡 算法
ribbon的7种负载均衡算法和替换方法
ribbon的7种负载均衡算法和替换方法
34 0
ribbon的7种负载均衡算法和替换方法
|
23天前
|
负载均衡 网络协议 Java
构建高效可扩展的微服务架构:利用Spring Cloud实现服务发现与负载均衡
本文将探讨如何利用Spring Cloud技术实现微服务架构中的服务发现与负载均衡,通过注册中心来管理服务的注册与发现,并通过负载均衡策略实现请求的分发,从而构建高效可扩展的微服务系统。
|
1月前
|
负载均衡 算法 Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(四)Ribbon的使用
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(四)Ribbon的使用
25 0
|
1月前
|
SpringCloudAlibaba 负载均衡 Java
【二】SpringCloud Alibaba之Nacos整合篇(配置负载均衡)
【二】SpringCloud Alibaba之Nacos整合篇(配置负载均衡)
265 0
|
1月前
|
负载均衡
【二十】搭建SpringCloud项目四(Ribbon)
【二十】搭建SpringCloud项目四(Ribbon)
20 0
|
1月前
|
存储 负载均衡 Java
【Spring底层原理高级进阶】微服务 Spring Cloud 的注册发现机制:Eureka 的架构设计、服务注册与发现的实现原理,深入掌握 Ribbon 和 Feign 的用法 ️
【Spring底层原理高级进阶】微服务 Spring Cloud 的注册发现机制:Eureka 的架构设计、服务注册与发现的实现原理,深入掌握 Ribbon 和 Feign 的用法 ️
|
1月前
|
负载均衡 算法 Java
SpringCloud负载均衡源码解析 | 带你从表层一步步剖析Ribbon组件如何实现负载均衡功能
SpringCloud负载均衡源码解析 | 带你从表层一步步剖析Ribbon组件如何实现负载均衡功能
|
1月前
|
负载均衡 程序员 微服务
【微服务】2、一篇文章详解 Ribbon 负载均衡
【微服务】2、一篇文章详解 Ribbon 负载均衡
37 0
|
3月前
|
负载均衡 Java 应用服务中间件
springcloud3-服务到服务调用ribbon及openfeign
springcloud3-服务到服务调用ribbon及openfeign
46 0
|
3月前
|
负载均衡 Java Spring
深入理解Ribbon负载均衡
深入理解Ribbon负载均衡
69 0