1. 注解@LoadBalanced

  作用:识别应用名称,并进行负载均衡。

2. 入口类:LoadBalancerAutoConfiguration

  

  

  说明:类头上的注解可以知道Ribbon 实现的负载均衡自动化配置需要满足两个条件
    1、 RestTemplate 类必须存在于当前工程的环境中
    2、 在Spring 的Bean工程中有必须有LoadBalancerClient 的实现Bean

3.  LoadBalancerClient 类

  

  

  

  说明:从接口中,可以通过定义的方法了解到负载均衡器具备下面几个功能
    1. 根据服务 ID ,从负载均衡器里面挑选一个服务实例 
    2. 使用从负载均衡器中挑选出的服务实例来执行指定的内容 。
    3. 为系统构建一个合适的“host:port” 形式的URI。

4. LoadBalancerInterceptor 类

  

  

  说明 :当一个被@LoadBalanced注解修饰的 RestTemplate对象向外发起HTTP请求时,会被 LoadBalancerInterceptor类的 intercept函数所拦截,这个时候就会使用负载均衡器进行调执执行。

  

  

  说明 :
    1、 利用IloadBalancer接口 ,调用其 调用其 chooseServer("default")方法获取一个Server。
    2、 包装一个 RibbonServer对象 ,之后执行 execute方法

  RibbonClientConfiguration类

  

  这里是IloadBalancer的实现类

  ZoneAwareLoadBalancer类

  

  

  说明 :
    1、 当 Zone个数大于 个数大于 1时,才会向下执行 时,才会向下执行
    2、 当小于 1时,使用父类的 chooseServer方法 获取 Server
    3、 当大于 1是,随机选择一个 Zone使用 zoneLoadBalancer的chooseServer方法 获取 Server
    4、 最终都是调用 BaseLoadBalancer类的 chooseServer方法

  BaseLoadBalancer类

  

  说明 :
    1、 这里使用 rule的 choose方法进行调用 方法进行调用 ,返回 server
    2、 rule的默认是使用 RoundRobinRule

  RibbonLoadBalancerClient类

  

  说明 :apply使用的是 LoadBalancerRequestFactory类里面的方法 类里面的方法 ,从 LoadBalancerInterceptor类可 以知道 。RibbonStatsRecorder是对服务的请求进行跟踪记录

  

  说明:封装了 ServiceRequestWrapper,重写了getURI函数,重写后的 getURI会通过调用 LoadBalancerClient接口的 reconstructURI函数来重新构建一个 函数来重新构建一个 URI进行访问

  

  

  

SpringCloud学习笔记(7)----Spring Cloud Netflix之负载均衡-Ribbon的深入理解的更多相关文章

  1. SpringCloud学习笔记(8)----Spring Cloud Netflix之负载均衡-Ribbon的负载均衡的策略

    一. 内置 负载均衡策略的介绍的 IRule的实现类 2. 通过代码实现负载均衡 在第六节Riddom的使用的工程中,随机策略配置类 package com.wangx.cloud.springclo ...

  2. SpringCloud学习笔记(6)----Spring Cloud Netflix之负载均衡-Ribbon的使用

    1. 什么是负责均衡? 负载均衡,就是分发请求流量到不同的服务器. 负载均衡一般分为两种 1. 服务器端负载均衡(nginx) 2. 客户端负载均衡(Ribbon) 2. 服务提供者(spring-c ...

  3. 三、Spring Cloud之软负载均衡 Ribbon

    前言 上一节我们已经学习了Eureka 注册中心,其实我们也使用到了Ribbon ,只是当时我们没有细讲,所以我们现在一起来学习一下Ribbon. 什么是Ribbon 之前接触到的负载均衡都是硬负载均 ...

  4. spring cloud 之 客户端负载均衡 Ribbon

    一.负载均衡 负载均衡(Load Balance): 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽.增加吞吐量.加强网络数据处理能力.提高网络的灵活性和可用性.其意 ...

  5. springCloud学习-消息总线(Spring Cloud Bus)

    1.简介 Spring Cloud Bus 将分布式的节点用轻量的消息代理连接起来.它可以用于广播配置文件的更改或者服务之间的通讯,也可以用于监控.本文要讲述的是用Spring Cloud Bus实现 ...

  6. Spring-Cloud-Ribbon学习笔记(二):自定义负载均衡规则

    Ribbon自定义负载均衡策略有两种方式,一是JavaConfig,一是通过配置文件(yml或properties文件). 需求 假设我有包含A和B服务在内的多个微服务,它们均注册在一个Eureka上 ...

  7. 【Spring Cloud】客户端负载均衡组件——Ribbon(三)

    一.负载均衡 负载均衡技术是提高系统可用性.缓解网络压力和处理能力扩容的重要手段之一. 负载均衡可以分为服务器负载均衡和客户端负载均衡,服务器负载均衡由服务器实现,客户端只需正常访问:客户端负载均衡技 ...

  8. API网关spring cloud gateway和负载均衡框架ribbon实战

    通常我们如果有一个服务,会部署到多台服务器上,这些微服务如果都暴露给客户,是非常难以管理的,我们系统需要有一个唯一的出口,API网关是一个服务,是系统的唯一出口.API网关封装了系统内部的微服务,为客 ...

  9. Spring Cloud中的负载均衡策略

    在上篇博客(Spring Cloud中负载均衡器概览)中,我们大致的了解了一下Spring Cloud中有哪些负载均衡器,但是对于负载均衡策略我们并没有去详细了解,我们只是知道在BaseLoadBal ...

随机推荐

  1. android 给imageView,文字等加上阴影[记录]

    1.链接 https://github.com/Devlight/ShadowLayout 2.效果 3.code compile 'com.github.devlight.shadowlayout: ...

  2. 【Paper Reading】Learning while Reading

    Learning while Reading 不限于具体的书,只限于知识的宽度 这个系列集合了一周所学所看的精华,它们往往来自不只一本书 我们之所以将自然界分类,组织成各种概念,并按其分类,主要是因为 ...

  3. paratest

    class Program { static void Main(string[] args) { long result = 0; Stopwatch Watch = new Stopwatch() ...

  4. css样式表格边框1px hover时为2px 实现方式

    //css .flclass-cont .flclass-cont-box{width:%;display:inline-block;font-size:;margin:10px;position:r ...

  5. elasticsearch集群安全重启节点

    es2.x 关闭集群的动态分片:(动态分片开启状态如果节点宕机了,会导致集群重新分配数据进行数据转移,会导致节点直接大量传输数据)curl -XPUT 'http://192.168.248.193: ...

  6. 【AnjularJS系列5 】— scopes、module、controller

    第五篇, scopes.module.controller 这一篇,感觉,在前面几篇就使用过的属性,但,总觉得没有理解透彻,有待完善!~ 1.scopes A.定义:$scope是一个把view(一个 ...

  7. 优动漫PAINT安装教程

    优动漫PAINT是一款漫画.插画.动画绘制软件.其功能可分别满足画师对于插画.漫画和动画创作的针对性需求,是一款非常好用易上手的动漫绘图软件,本文来看使用软件第一步,如何安装优动漫PAINT. 步骤一 ...

  8. map————两个数组的交集(2)

    class Solution { public: vector<int> intersect(vector<int>& nums1, vector<int> ...

  9. Settings Django Static Files

    静态文件是通过django.contrib.staticfiles来管理的. 配置Django静态文件,Djang官网静态文件配置介绍.简言之,通过以下三个步骤来配置和加载静态文件: 设置静态文件别名 ...

  10. [JZOJ]100047. 【NOIP2017提高A组模拟7.14】基因变异

    21 世纪是生物学的世纪,以遗传与进化为代表的现代生物理论越来越多的 进入了我们的视野. 如同大家所熟知的,基因是遗传因子,它记录了生命的基本构造和性能. 因此生物进化与基因的变异息息相关,考察基因变 ...