前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【一起学源码-微服务】Ribbon源码五:Ribbon源码解读汇总篇~

【一起学源码-微服务】Ribbon源码五:Ribbon源码解读汇总篇~

作者头像
一枝花算不算浪漫
发布2020-01-13 15:56:05
8630
发布2020-01-13 15:56:05
举报
文章被收录于专栏:一枝花算不算浪漫的专栏

前言

想说的话

【一起学源码-微服务-Ribbon】专栏到这里就已经全部结束了,共更新四篇文章。

Ribbon比较小巧,这里是直接 读的spring cloud 内嵌封装的版本,里面的各种configuration确实有点绕,不过看看第三讲Ribbon初始化的过程总结图就会清晰很多。

紧接着会继续整理学习Feign源码相关的,敬请期待。

说明

原创不易,如若转载 请标明来源!

博客地址:一枝花算不算浪漫 微信公众号:壹枝花算不算浪漫

总结

总结分为两个部分,一个是Riboon执行整体流程图,还一个是Ribbon初始化流程图。

Ribbon整体流程图:

08_Ribbon整体流程图.jpg
08_Ribbon整体流程图.jpg

Ribbon初始化流程图:

02_Ribbon初始化流程图.jpg
02_Ribbon初始化流程图.jpg

常用配置

常用配置

  1. 禁用 Eureka 当我们在 RestTemplate 上添加 @LoadBalanced 注解后,就可以用服务名称来调用接口了,当有多个服务的时候,还能做负载均衡。 这是因为 Eureka 中的服务信息已经被拉取到了客户端本地,如果我们不想和 Eureka 集成,可以通过下面的配置方法将其禁用。 xml #禁用 Eureka ribbon.eureka.enabled=false 当我们禁用了 Eureka 之后,就不能使用服务名称去调用接口了,必须指定服务地址。
  2. 配置接口地址列表 上面我们讲了可以禁用 Eureka,禁用之后就需要手动配置调用的服务地址了,配置如下: xml #禁用 Eureka 后手动配置服务地址 ribbon-config-demo.ribbon.listOfServers=localhost:8081,localhost:8083 这个配置是针对具体服务的,前缀就是服务名称,配置完之后就可以和之前一样使用服务名称来调用接口了。
  3. 配置负载均衡策略 Ribbon 默认的策略是轮询,从我们前面讲解的例子输出的结果就可以看出来,Ribbon 中提供了很多的策略,这个在后面会进行讲解。我们通过配置可以指定服务使用哪种策略来进行负载操作。
  4. 超时时间 Ribbon 中有两种和时间相关的设置,分别是请求连接的超时时间和请求处理的超时时间,设置规则如下: xml # 请求连接的超时时间 ribbon.ConnectTimeout=2000 # 请求处理的超时时间 ribbon.ReadTimeout=5000 也可以为每个Ribbon客户端设置不同的超时时间, 通过服务名称进行指定: xml ribbon-config-demo.ribbon.ConnectTimeout=2000 ribbon-config-demo.ribbon.ReadTimeout=5000
  5. 并发参数 xml #最大连接数 ribbon.MaxTotalConnections=500 #每个host最大连接数 ribbon.MaxConnectionsPerHost=500
  6. 重试和负载均衡相关配置 ```xml # 对当前实例的重试次数 ribbon.maxAutoRetries=1 # 切换实例的重试次数 ribbon.maxAutoRetriesNextServer=3 # 对所有操作请求都进行重试 ribbon.okToRetryOnAllOperations=true # 对Http响应码进行重试 ribbon.retryableStatusCodes=500,404,502 # 负载Rule选择 ribbon-config-demo.ribbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.BestAvailableRule ```

【一起学源码-微服务Ribbon】文章链接

  1. 【一起学源码-微服务】Ribbon 源码一:Ribbon概念理解及Demo调试
  2. 【一起学源码-微服务】Ribbon 源码二:通过Debug找出Ribbon初始化流程及ILoadBalancer原理分析
  3. 【一起学源码-微服务】Ribbon 源码三:Ribbon与Eureka整合原理分析
  4. 【一起学源码-微服务】Ribbon 源码四:进一步探究Ribbon的IRule和IPing

申明

本文章首发自本人博客:https://www.cnblogs.com/wang-meng 和公众号:壹枝花算不算浪漫,如若转载请标明来源!

感兴趣的小伙伴可关注个人公众号:壹枝花算不算浪漫

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-01-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
    • 想说的话
      • 说明
      • 总结
      • 常用配置
      • 【一起学源码-微服务Ribbon】文章链接
      • 申明
      相关产品与服务
      负载均衡
      负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档