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. 合肥工业大学—SQL Server数据库实验三:SQL语句创建和删除基本表
  2. GO语言教程4:defer(延迟语句)详解
  3. Google advertiser api开发概述——部分失败
  4. java rgb hsl_RGB、HSB、HSL 互相转换算法
  5. 弹性盒模型--新版与旧版比较(1)
  6. 2015-12-15 关于数量个
  7. option columns.render 渲染列(1) 添加checkbox
  8. 为什么强烈禁止开发人员使用isSuccess作为变量名
  9. mysql行级锁升级_mysql innodb 行级锁升级
  10. python函数可以提高代码执行速度吗_Python代码运行速度慢?这五种方法很管用
  11. 面向对象——类设计(二)
  12. Kubernetes详解(十二)——节点选择器与资源注解
  13. Bootstrap table的基础用法
  14. python如何创建工程预设_新手如何发布第一个 Python 项目开源包?
  15. SQL Server_SQL Server Windows NT - 64 bit
  16. docx文档怎么排列图片_腾讯、石墨、金山在线文档简单对比
  17. 南京中山陵环卫工和游客当众互殴(图)
  18. Docker 文件映射
  19. SUBSTANCE PAINTER质感案例教学 PBR次世代影视游戏场景道具制作 SP金属木头皮革材质渲染...
  20. JAVA Swing + Jdbc 实现宿舍管理系统

热门文章

  1. 【python教程入门学习】Python 正则表达式
  2. php定时执行代码漏洞_在CTF比赛中发现的PHP远程代码执行0day漏洞
  3. 思维碰撞!谷歌提出ViTGAN,用视觉Transformer训练GAN
  4. 收藏 | 一文读懂深度学习中的各种卷积
  5. 百度计算机视觉暑期实习面经(成功上岸!已拿offer)
  6. 《Python编程从入门到实践》第10章文件和异常动手试一试答案(附代码)
  7. 前端与java绘制三维图_使用HTML5 Canvas绘制三维波浪图算法和实现
  8. 精选论文集:三维点云有哪些必读的论文?
  9. 人工智能发展趋势——深度AI科普调研团队
  10. 这就是数据分析之数据可视化基础概念及工具