Springcloud Ribbon如何具体实现负载均衡算法?
- 内容介绍
- 文章标签
- 相关推荐
本文共计729个文字,预计阅读时间需要3分钟。
一、前言通过几篇cloud系列文章,我想大家都已具备一个扎实的理论基础,后续的学习就会轻松很多。如果是刚开始接触的读者,需要了解eureka基础知识,或者查阅知识追寻者的cloud系列专题。
一 前言
经过几篇的cloud系列文章,我想大家都有一个坚实的基础,后续的学习就会轻松很多,如果是刚刚来看的读者需要有eureka基础知识,或者查阅知识追寻者的cloud系列专栏;这篇文章主要讲解如何使用ribbon实现web service客户端调用,ribbon默认算法实现负载均衡等!
二 ribbon简介
ribbon是一个客户端负载均衡器,其能够整合不同的协议工具进行web service API 调用;
主要特色如下:
提供可插拔式的负载均衡整合服务发现故障弹性恢复cloud支持客户端整合加载负载均衡
核心工程如下:
ribbon-core:整合其他模块实现负载均衡
ribbon-eureka: 基于 eureka client 实现 负载均衡
ribbon-eureka-client/zszxz/ribbon",String.class); } }
4.4 controller
创建表现层类, 用于浏览器访问;
/** * @Author lsc * <p> </p> */ @RestController public class RibbonController { @Autowired RibbonService ribbonService; @GetMapping("ribbon/test") public String testRibbon(){ return ribbonService.testRibbon(); } }
4.5 ribbon启动类
ribbon的启动类也是作为 eureka 的客户端故需要加上@EnableEurekaClient注解;
/** * @Author lsc * <p>知识追寻者 ribbon启动类 </p> */ @SpringBootApplication @EnableEurekaClient public class RibbonApp { public static void main(String[] args) { SpringApplication.run(RibbonApp.class,args); } }
4.6 application.yml
application.yml 配置中使用端口8092,服务注册地址分别是peer1,peer2,peer3;
server: port: 8092 spring: application: name: eureka-ribbon # 应用名称 eureka: client: service-url: # 服务注册地址 defaultZone: peer1:10081/eureka/,peer2:10082/eureka/,peer3:10083/eureka/
4.7 启动工程
分别启动 client ,server ; 如下图
4.8 浏览器访问结果
浏览器结果如下,说明我们在 eureka-ribbon 中使用 restTemplate 结合 ribbon 实现了HTTP 方式从 eureka-clinet 模块中调用API;
五 ribbon默认负载均衡
LoadBalancerClient 是 ribbon 的一个核心类,其能够获得 ribbon提供负载均衡的实例信息;在 ribbon-client模块中的controller层添加 方法 ,方法主体是获得实例的端口和主机;以便于于我们分析ribbon负载均衡算法;
@Autowired LoadBalancerClient loadBalanced; @GetMapping("ribbon") public String ribbon(){ ServiceInstance choose = loadBalanced.choose("eureka-client"); String s = "host is :" + choose.getHost() + " port is :" + choose.getPort(); System.out.println(s); return s; }
重启ribbon-client 工程,使用浏览器访问,控制台输出如下,分别调用了8090,8091两个 eureka-client实例API,说明ribbon默认的负载均衡机制是轮询算法;
host is :peer1 port is :8091 host is :peer1 port is :8090 host is :peer1 port is :8091 host is :peer1 port is :8090 host is :peer1 port is :8091 host is :peer1 port is :8090 host is :peer1 port is :8091 host is :peer1 port is :8090
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。
本文共计729个文字,预计阅读时间需要3分钟。
一、前言通过几篇cloud系列文章,我想大家都已具备一个扎实的理论基础,后续的学习就会轻松很多。如果是刚开始接触的读者,需要了解eureka基础知识,或者查阅知识追寻者的cloud系列专题。
一 前言
经过几篇的cloud系列文章,我想大家都有一个坚实的基础,后续的学习就会轻松很多,如果是刚刚来看的读者需要有eureka基础知识,或者查阅知识追寻者的cloud系列专栏;这篇文章主要讲解如何使用ribbon实现web service客户端调用,ribbon默认算法实现负载均衡等!
二 ribbon简介
ribbon是一个客户端负载均衡器,其能够整合不同的协议工具进行web service API 调用;
主要特色如下:
提供可插拔式的负载均衡整合服务发现故障弹性恢复cloud支持客户端整合加载负载均衡
核心工程如下:
ribbon-core:整合其他模块实现负载均衡
ribbon-eureka: 基于 eureka client 实现 负载均衡
ribbon-eureka-client/zszxz/ribbon",String.class); } }
4.4 controller
创建表现层类, 用于浏览器访问;
/** * @Author lsc * <p> </p> */ @RestController public class RibbonController { @Autowired RibbonService ribbonService; @GetMapping("ribbon/test") public String testRibbon(){ return ribbonService.testRibbon(); } }
4.5 ribbon启动类
ribbon的启动类也是作为 eureka 的客户端故需要加上@EnableEurekaClient注解;
/** * @Author lsc * <p>知识追寻者 ribbon启动类 </p> */ @SpringBootApplication @EnableEurekaClient public class RibbonApp { public static void main(String[] args) { SpringApplication.run(RibbonApp.class,args); } }
4.6 application.yml
application.yml 配置中使用端口8092,服务注册地址分别是peer1,peer2,peer3;
server: port: 8092 spring: application: name: eureka-ribbon # 应用名称 eureka: client: service-url: # 服务注册地址 defaultZone: peer1:10081/eureka/,peer2:10082/eureka/,peer3:10083/eureka/
4.7 启动工程
分别启动 client ,server ; 如下图
4.8 浏览器访问结果
浏览器结果如下,说明我们在 eureka-ribbon 中使用 restTemplate 结合 ribbon 实现了HTTP 方式从 eureka-clinet 模块中调用API;
五 ribbon默认负载均衡
LoadBalancerClient 是 ribbon 的一个核心类,其能够获得 ribbon提供负载均衡的实例信息;在 ribbon-client模块中的controller层添加 方法 ,方法主体是获得实例的端口和主机;以便于于我们分析ribbon负载均衡算法;
@Autowired LoadBalancerClient loadBalanced; @GetMapping("ribbon") public String ribbon(){ ServiceInstance choose = loadBalanced.choose("eureka-client"); String s = "host is :" + choose.getHost() + " port is :" + choose.getPort(); System.out.println(s); return s; }
重启ribbon-client 工程,使用浏览器访问,控制台输出如下,分别调用了8090,8091两个 eureka-client实例API,说明ribbon默认的负载均衡机制是轮询算法;
host is :peer1 port is :8091 host is :peer1 port is :8090 host is :peer1 port is :8091 host is :peer1 port is :8090 host is :peer1 port is :8091 host is :peer1 port is :8090 host is :peer1 port is :8091 host is :peer1 port is :8090
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。

