Ribbon:

  ribbon是springcloud个服务之间调用的一种实现方式:主要提供了客户端的负载均衡。feign集成了Ribbon(下节介绍)

源码分析:

 1> 源码入口 @LoadBalanced

     

 2> @LoadBalanced  注解接口实现:

    

 3>  loadBanlanced 都是在spring-cloud-commons包中

    

    最终实现类是 RibbonLoadBalancerClient。集成关系如下:

     

  4>  RibbonLoadBalancerClient 类详解:   在spring-cloud-netflitx-ribbon包中:

    

    根据上面介绍,最终调的服务由choose方法决定,那我们来进一步看看choose方法:  下面是方法调用流程

    

  5>  负载均衡的实现  IRule 和iPing实现:

    

   IPing:判断服务器是否启动:isAlive方法

    

   IRule: 路由实现(在服务器启动的实现。选择哪个服务进行响应)

    

  剩下源码有兴趣的可以继续追,我就介绍到这了


转载于:https://www.cnblogs.com/huhongy/p/9578024.html

springcloud 入门 4 (rebbon源码解读)相关推荐

  1. APS入门3-C#开发-从源码解读一个APS项目

    APS系列入门 APS入门1-综述 APS入门2-ortools APS入门3-从源码解读一个C# APS项目 APS入门4: 供应链与APS APS入门5:工厂管理 APS入门6-LEKIN学习与复 ...

  2. 前端日报-20160527-underscore 源码解读

    underscore 源码解读 API文档浏览器 JavaScript 中加号操作符细节 抛弃 jQuery,拥抱原生 JS 从 0 开始学习 GitHub 系列之「加入 GitHub」 js实现克隆 ...

  3. 当我们谈论Virtual DOM时,我们在说什么——etch源码解读

    etch简介 首先我们有必要介绍一下etch. etch是atom团队下的开源项目,是一套非常简洁然而功能十分完善的virtualDOM机制.我在偶然的情况下接触到了这个开源项目,在读README时为 ...

  4. Spring 源码解读第七弹!bean 标签的解析

    Spring 源码解读继续. 本文是 Spring 系列第八篇,如果小伙伴们还没阅读过本系列前面的文章,建议先看看,这有助于更好的理解本文. Spring 源码解读计划 Spring 源码第一篇开整! ...

  5. 【赠书福利】掘金爆火小册同名《Spring Boot源码解读与原理剖析》正式出书了!...

    关注我们丨文末赠书 承载着作者的厚望,掘金爆火小册同名读物<Spring Boot源码解读与原理剖析>正式出书! 本书前身是掘金社区销量TOP的小册--<Spring Boot源码解 ...

  6. 实战:Spring Boot源码解读与原理分析

    承载着作者的厚望,掘金爆火小册同名读物<Spring Boot源码解读与原理剖析>正式出书! 本书前身是掘金社区销量TOP的小册--<Spring Boot源码解读与原理剖析> ...

  7. PyTorch 源码解读之 cpp_extension:讲解 C++/CUDA 算子实现和调用全流程

    "Python 用户友好却运行效率低","C++ 运行效率较高,但实现一个功能代码量会远大于 Python".平常学习工作中你是否常听到类似的说法?在 Pyth ...

  8. Bert系列(二)——源码解读之模型主体

    本篇文章主要是解读模型主体代码modeling.py.在阅读这篇文章之前希望读者们对bert的相关理论有一定的了解,尤其是transformer的结构原理,网上的资料很多,本文内容对原理部分就不做过多 ...

  9. Bert系列(三)——源码解读之Pre-train

    https://www.jianshu.com/p/22e462f01d8c pre-train是迁移学习的基础,虽然Google已经发布了各种预训练好的模型,而且因为资源消耗巨大,自己再预训练也不现 ...

最新文章

  1. 禁止ensp弹出提示
  2. linux 远程备份mysql数据库_使用脚本自动化远程备份MySQL数据库
  3. 【我来解惑】.Net应该学什么怎么学(二)
  4. 循环冗余检错码CRC
  5. C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 大型软件系统客户端数据同步的问题解决...
  6. Thinkpad X230 黑苹果macOS 10.14 和10. 15驱动AR9285网卡
  7. 洪恩在线c语言测试,洪恩软件之编程之道C/C++程序设计入门视频教程
  8. 实战 - Nexus搭建Maven私服
  9. EasyCamera--更简单更灵活的相机应用编写
  10. stm32之蓝牙模块HC-05使用
  11. 全球与中国电子柜锁市场深度研究分析报告
  12. 手机OTG是什么功能,怎样使用?
  13. 红魔8pro pro+机型NX729J解锁bl 获取root教程
  14. 定义方法,实现两个整数的加法
  15. 数据库事物和分布式事物
  16. 基于cesium的地形开挖地形剖切
  17. Codeforces Round #731 (Div. 3)(ABCDEFG)
  18. 2022-2028年全球与中国RNA聚合酶抑制剂行业深度分析
  19. usb启动计算机boss设置方法,教程方法;U盘装系统中bios设置USB启动图文教程电脑技巧-琪琪词资源网...
  20. 第四届蓝桥杯单片机省赛 自动灌溉系统

热门文章

  1. nacos当配置中心读取其他配置文件_SpringBoot+Nacos实现配置中心
  2. C++ Primer 第五版 第7章类 7.1——类讲解(成员函数、非成员函数、构造函数)习题答案
  3. 获取远程linux版本,远程批量获取Linux和Windos操作系统版本(内核)
  4. 数据结构(六)霍夫曼树与编码
  5. 算法移植优化(二)android gpuimage使用
  6. Matlab线性/非线性规划优化算法(6)
  7. 02怎么取整php,php取整的几种方式
  8. eclipse web项目页面显示404_404 Not Found错误页面是什么?
  9. asp.net web开发框架_用Python开发一个Web框架
  10. linux openssl离线安装路径,离线安装openssl-devel顺序