当前位置: 首页 > news >正文

SpringCloud第二讲 Ribbon负载均衡源码分析

前言介绍:

      这一讲我们将依据Eureka的负载均衡规则,Eureka的具体服务搭建以及服务注册和服务发现可以参考基于Eureka实现服务注册和服务发现_热爱Java的编程小白的博客-CSDN博客

      Eureka的服务搭建之后便可以在这上面进行服务注册,如果存在两个相同的服务名注册,此时服务请求这个相同名称的服务的时候,将会配合Ribbon进行负载均衡处理,换言之,会在注册的同名服务列表中拉取其中一个服务处理本次请求。因此本讲将详细介绍Ribbon的负载均衡策略源码。

源码介绍:(基于idea工具进行讲解)

      双击键盘Shift打开全局搜索,输入LoadBalancerInterceptor进入到这个类里面,我们可以看到这个类实现了ClientHttpRequestInterceptor这个接口,这个接口是请求拦截器。这个接口会将请求进行拦截并且做负载均衡处理

       进入接口会发现这个接口只有一个实现拦截方法,那么负载均衡将会基于这个拦截方法进行负载均衡处理。

      进入方法查看发现会获取地址信息,服务名,获取到的服务名称,将会依据获取到的服务名称拉取从Eureka上拉取的同名服务实例。

       继续往下执行会发现allServerList已经从Eureka上拉取到这两个服务名称相同的服务实例

       继续跟进rule.choose(key),将会选择轮询还是随机,进入Rule接口

 将会看到里面有轮询和随机方法

 最后成功拿到实例。

Ribbon负载均衡源码分析就到这了,希望对大家有帮助!

 
http://www.lryc.cn/news/2910.html

相关文章:

  • Clip-path实现按钮流动边框动画
  • 不停服更新应用的方案:蓝绿发布、滚动发布、灰度发布
  • 有趣的KaTeX(附源码)
  • Golang map笔记
  • Android Jetpack组件之WorkManager高级概念介绍与使用(三)
  • Spring框架中用到的设计模式(都用到了哪些设计模式?)
  • Python中的类和对象(4)
  • window11 安装node及配置环境变量
  • 腾讯云服务器选购新手教程(新版流程超级详细)
  • 第四章 Opencv图像色彩空间与通道
  • 《论文列表》持续更新中......
  • 空间中任意一点到球的截面的最短距离
  • 麦克斯韦方程场分量公式推导
  • freertos学习之路6-任务创建和删除
  • 科都电气创业板IPO终止:曾计划募资约6亿元,郑春开等学历较低
  • 【MySQL】第十六部分 MySQL数据类型详解
  • Linux手工创建新用户
  • K_A12_003 基于STM32等单片机采集光敏二极管模块参数 串口与OLED0.96双显示
  • 天才少年稚晖君
  • 【Linux command 09】tcpdump 命令
  • 初始结构体
  • English Learning - Day56 作业打卡 2023.2.10 周五
  • Python中五个不常见的隐晦用法小结
  • SharkTeam:Move合约开发与合约安全
  • 一篇文章学习什么是进程(万字解析,超多知识点)
  • 第01章_数据库概述
  • 我所理解的高通UEFI之display的流程和移植
  • iozone -a fsync: I/O error
  • Element UI框架学习篇(五)
  • SpringBoot 全局异常处理用法及原理