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如需转载请自行联系原作者

我爱大金子
优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/557414

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。