搭建Ribbon负载均衡
(一)理论知识
负载均衡是高可用网络基础架构的一个 关键组成部分,有了负载均衡,我们通常可以将我们的应用服务器部署多台,然后通过负载均衡将用户的请求分发到不同的服务器用来提高网站、应用、数据库或其他服务的性能以及可靠性。引入负载均衡,可以将负载(工作任务)进行平衡、分摊到多个执行单元上运行。例如,Web服务器、FTP服务器、企业关键应用服务器和其他主要任务服务器等,协同完成工作任务。
负载均衡的web结构
负载均衡的web结构
负载均衡器会维护-一个可用的服务清单,通过心跳检测来剔除清单中故障的服务端节点。当客户端借助网络发送请求到负载均衡器时,负载均衡器从维护的服务清单里面选择-一个服务器,并将客户端请求转发到此服务器,从而提高系统的可用性和稳定性。
第一个Ribbon实例的架构图
第一个Ribbon实例的架构图
(二)开发流程
1.创建PortController类
在项目eureka-provider和eureka-provider-another中新建controller包,并创建PortController类,该类能够返回当前项目的端口号
创建PortController类
2.创建项目,引入依赖
使用Spring Initializr方式创建 -一个名称为eureka-ribbon-client的Spring Boot项目,这里将:Group命名为com. itheima,将Artifact 命名为eureka- ribbon-client,添加Eureka Client 、Ribbon和Web的依赖。
3.在application.ymI文件进行相关配置
在全局配置文件application.yml进行相关配置,包括指定应用名称、端口号、服务注册地址等信息
在application.ymI文件进行相关配置
4.在项目启动类添加@EnableEurekaClient注解
在项目启动类EurekaRibbonClientApplication上添加@EnableEurekaClient注解开启EurekaClient功能。
5.创建配置类
新建config包,并在该包下创建RibbonConfig类,该类注入restTemplate的Bean,并在这个Bean中加上@LoadBalanced注解
创建配置类
6.创建Service类
新建service包,并在该包下创建一个RibbonService类,在该类的hi()方法中使用restTemplate调用eureka-client的API接口
创建Service类
7.创建Controller类
新建controller包,并在该包下创建一个RibbonController类,在该类上添加@RsetController注解,将RibbonController标注为一个Controller类。在类中写一个hi ()方法,调用RibbonService的hi()方法
创建Controller类
8.测试运行
(1)启动服务提供者eureka-server和eureka-server-another,服务消费者eureka-ribon-client,在浏览器上访问ttp://localhost:7000,界面显示如下图所示。
启动服务提供者eureka-server和eureka-server-another
(2)为了演示使用Ribbon的服务消费者负载均衡的效果,使用浏览器多次访问
http://localhost:8764/hi,浏览器页面访问效果所示。
浏览器页面访问效果
(三)总结
本章主要介绍了Spring Cloud中 的客户端负载均衡组件Ribbon,包括什么是负载均衡、开发第一个Ribbon实例、Ribbon的工作原理以及Ribbon负载均衡策略。通过本章的学习,希望大家能够了解负载均衡,并学会使用Ribbon结合Eureka实现负载均衡,了 解Ri bbon负载均衡策略以及工作原理。