Springboot+SpringCloud实战 12-第十二章电子课件.ppt
《Springboot+SpringCloud实战 12-第十二章电子课件.ppt》由会员分享,可在线阅读,更多相关《Springboot+SpringCloud实战 12-第十二章电子课件.ppt(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Springboot+SpringCloud实战 12-第十二章电子课件第十二章 负载均衡器Ribbon学习目标l 了解负载均衡策略。l 熟悉Ribbon的基本使用。l 了解Ribbon工作原理。l 熟悉Ribbon负载均衡策略。l 熟悉如何配置Ribbon的负载均衡策略和其他配置。在项目开发中,当用户量和业务量都多起来的时候,我们会发现一个商品微服务处理的请求量已经不能满足我们 业务需求,我们需要准备多个商品微服务才可以满足请求调用或者给订单微服务调用,于是我们在Eureka中注册了多个商品微服务用来处理高并发下的商品相关业务,也就是集群。那么当订单微服务客户端发送商品相关请求过来之后如何选
2、择由哪一个商品微服务处理请求呢?这就需要使用负载均衡来处理。本章我们就来认识Spring Cloud Netflix的另一个“利器”负载均衡器Ribbon。负载均衡策略 12Ribbon介绍和使用3Ribbon工作原理4Ribbon负载均衡策略5Ribbon策略测试和其他配置负载均衡策略负载均衡(Load Balance)是实现系统高可用、缓解网络压力以及处理能力扩容的重要手段之一,负载均衡可以帮我们把一些网络请求的压力“均衡”到所有的服务器进行处理。当然,因为多台服务器的承载能力各不相同,有的硬件配置高而有的硬件配置低,有的网络带宽高而有的网络带宽低,所以负载均衡是在保证服务器不会过载情况下
3、,发挥程序的最大作用。我们通常所说的负载均衡指的是服务器端负载均衡,可分为硬件负载均衡和软件负载均衡两种。硬件负载均衡是直接在服务器节点之间安装专门的负载均衡设备,来完成网络请求转发的任务,它独立于操作系统,整体性能高,负载均衡策略多样化,流量管理智能化。它的优点是功能强大,不仅包含负载均衡,还包括其他应用,例如,网络地址转换、SSL加速等;缺点是成本太高,并且无法掌握服务器和应用的状态。负载均衡策略软件负载均衡是通过在服务器上安装和使用一些具有负载功能或模块的软件来实现请求的转发,使用比较多的有Nginx、LVS、HAProxy等。其中Nginx在中小型Web应用中使用较为广泛,是服务器端常
4、用的一种软件负载均衡策略,如图所示。负载均衡策略负载均衡模块都会维护一个可用服务器节点的清单,通过心跳等策略来判断以及从清单中剔除故障服务器节点,来确保清单中的服务器节点都是可以正常访问的。当客户端发送请求给负载均衡软件的时候,它会按线性轮询、按权重大小等负载均衡算法命中某个服务器节点,然后转发请求。根据服务清单存储的位置和维护方式不同,负载均衡又分为服务器端负载均衡和客户端负载均衡。前面提到的Nginx负载均衡的清单在Nginx负载均衡软件处,在集群前添加Nginx,所有访问集群节点的请求都会交给Nginx,然后由Nginx转发请求,这种属于服务器端负载均衡。在Spring Cloud微服务
5、开发中,所有的客户端都维护着自己要访问的服务清单,而这些服务清单都存储在Eureka注册中心,同服务端负载均衡一样,客户端访问时也需要进行负载均衡处理,那么它是怎么实现负载均衡的呢?使用Spring Cloud Netflix提供的客户端负载均衡器Ribbon即可。负载均衡策略 12Ribbon介绍和使用3Ribbon工作原理4Ribbon负载均衡策略5Ribbon策略测试和其他配置Ribbon介绍和使用Ribbon是Netflix公司提供的一个在Spring Cloud中免费使用的客户端负载均衡器组件。它在集群中为各个客户端之间的通信提供支持,可以控制、管理HTTP和TCP客户端的负载均衡。
6、Ribbon从Eureka注册获取访问服务提供者地址列表后,就可基于某种负载均衡算法,自动地帮助服务消费者去请求。如图所示,展示了Ribbon获取服务清单并实现请求的流程。Ribbon提供了一系列完善的配置选项,如连接超时、重试算法等。Ribbon还内置了可插拔、可定制的负载均衡组件。Ribbon介绍和使用在第9章中我们使用了RestTemplate 进行服务之间的访问,并且在配置的Bean上使用了LoadBalanced注解,其实这时候RestTemplate 默认使用了Ribbon的负载均衡策略。Ribbon除了和RestTemplate结合实现客户端负载均衡之外,同样也被集成到了Feig
7、n中,当使用FeignClient的时候,Feign也默认使用了Ribbon进行网络请求的负载均衡。下面我们通过一个实例来看一下Ribbon负载均衡的使用。我们还是使用订单服务调用商品服务来测试和查看Ribbon的负载均衡。首先我们启动一个Eureka注册中心和一个订单服务,然后配置两个名字一样但是端口号不一样(一个是7001,另外一个是7003)的商品服务。Ribbon介绍和使用如图所示:Ribbon介绍和使用然后在 GoodsController中添加日志输出,用来确定调用的接口,如程序清单12-1所示。Ribbon介绍和使用然后启动商品服务,并在浏览器中访问两次订单接口,共需要查询6个商
8、品,所以需要调用6次商品服务,然后在控制台中可以看到商品服务调用情况是轮询调用,而不是所有接口都在一个服务中调用,如图所示。因此,我们了解到Ribbon的负载均衡策略默认为轮询调用服务清单中的服务。负载均衡策略 12Ribbon介绍和使用3Ribbon工作原理4Ribbon负载均衡策略5Ribbon策略测试和其他配置Ribbon工作原理之前我们在使用RestTemplate进行服务交互的时候,在其注入的bean上添加了LoadBalanced注解,这样它就默认是使用Ribbon进行负载均衡处理。但是RestTemplate是Spring提供的,Bean跟Ribbon客户端负载均衡又有什么关系呢
9、?下面我们就来深入地研究Ribbon是如何结合RestTemplate实现客户端服务调用的负载均衡的。既然RestTemplate是使用了LoadBalanced注解才让其实现Ribbon的负载均衡的,那么我们就从这个注解开始着手研究。按住“Ctrl”键并单击LoadBalanced注解查看源码,我们发现这个注解里面没有什么特殊的内容,但是从源码的注释可以知道该注解是标记在RestTemplate或WebClient Bean上的,从而配置为LoadBalancerClient。接着观察LoadBalancerClient的源码,可以发现它是一个定义了负载均衡方法的接口,如程序清单12-2所示
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Springboot+SpringCloud实战 12-第十二章电子课件 Springboot SpringCloud 实战 12 第十二 电子 课件
限制150内