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

网站空间上传教程珠海响应式网站制作

网站空间上传教程,珠海响应式网站制作,杭州尚层别墅装饰公司,河北省建设厅网站手机版ShenYu是一个异步的#xff0c;高性能的#xff0c;跨语言的#xff0c;响应式的 API 网关。有关ShenYu的介绍可以戳这。 一、前瞻 今天我们尝试不同的代码阅读方式#xff0c;按模块来去阅读源码#xff0c;看看效果如何。 本次阅读锁定在shenyu-loadbalancer#xf… ShenYu是一个异步的高性能的跨语言的响应式的 API 网关。有关ShenYu的介绍可以戳这。 一、前瞻 今天我们尝试不同的代码阅读方式按模块来去阅读源码看看效果如何。 本次阅读锁定在shenyu-loadbalancer根据模块名可以了解这个模块主要作用就是负载均衡。 我们可以根据这个模块的组织机构来思考本次的阅读线索 整个模块为ShenYu提供了什么功能我们很好奇负载均衡的cache缓存有什么作用spi的作用是什么 二、探索 那开始我们今天的模块阅读。 看起来factory就是这个模块的核心了作为工厂来生产核心对象我们就从这个工厂开始阅读。 public final class LoadBalancerFactory {private LoadBalancerFactory() {}/*** Selector upstream.** param upstreamList the upstream list* param algorithm the loadBalance algorithm* param ip the ip* return the upstream*/public static Upstream selector(final ListUpstream upstreamList, final String algorithm, final String ip) {LoadBalancer loadBalance ExtensionLoader.getExtensionLoader(LoadBalancer.class).getJoin(algorithm);return loadBalance.select(upstreamList, ip);} }很明显LoadBalancerFactory是作为外部的调用中心那LoadBalancerFactory又是调用了内部的什么模块去返回我们接着往下看。 SPI public interface LoadBalancer {/*** this is select one for upstream list.** param upstreamList upstream list* param ip ip* return upstream*/Upstream select(ListUpstream upstreamList, String ip); }可以看到通过select方法进行调用内部方法。 我们可以看下这个接口类的类图看下调用的最终实现者是什么对象。 类图很清晰地告诉我们最终实现者共有6个子类对象也就是说每个子类对象都是不同的负载均衡算法实现。 大家有没看到类图最上面的底层接口SPI和模块里的spi文件夹是相对应的spi的作用就是存储各种负载均衡算法的实现。那我们就解决了我们的阅读线索3。 spi的作用是什么 我们继续探索看看阅读线索2的答案 负载均衡的cache缓存有什么作用 查询代码发现缓存对象是UPSTREAM_MAP但很奇怪这个核心的缓存对象只有删除、设置的引用却没有使用的逻辑。 通过Git的历史查询发现这个缓存对象被废弃了最新版本的核心缓存对象应该是下面这两个 private final MapString, ListUpstream healthyUpstream Maps.newConcurrentMap();private final MapString, ListUpstream unhealthyUpstream Maps.newConcurrentMap();找到了核心缓存对象我们就来看看这个cache对象的作用究竟是什么。 我们看看调用缓存的对应方法。 Upstream流从shenyu-loadbalancer取出需要负载均衡时把该缓存传入。也就是说这个模块的cache充当了存储所有Upstream流的作用。 到这我们就解决了阅读线索2的问题了。 三、总结 而阅读线索3也显而易见整个模块为ShenYu提供了什么功能。我们可以看下上文我们提到的工厂对象。 public final class LoadBalancerFactory {private LoadBalancerFactory() {}/*** Selector upstream.** param upstreamList the upstream list* param algorithm the loadBalance algorithm* param ip the ip* return the upstream*/public static Upstream selector(final ListUpstream upstreamList, final String algorithm, final String ip) {LoadBalancer loadBalance ExtensionLoader.getExtensionLoader(LoadBalancer.class).getJoin(algorithm);return loadBalance.select(upstreamList, ip);} }核心方法很清晰我们传入Upsteam列表通过这个模块的负载均衡算法负载均衡地返回其中一个对象。 这也就是这个模块提供的功能。 未完待续。。。 好了今天的分享就到这。大家能否感受到通过按模块这种方式来阅读源码的乐趣呢 创作不易不妨点赞、收藏、关注支持一下各位的支持就是我创作的最大动力❤️
http://www.pierceye.com/news/205688/

相关文章:

  • 做网站的软件m开头网站建设公司问候语
  • 做网站需要工商证吗app软件开发价格
  • 做足球原创短视频网站网站建设永远在路上
  • 做seo为什么要了解网站苏州做网站公司
  • 这几年做哪些网站能致富网站开发账务处理
  • 网站的版权信息做阿里巴巴网站卖货咋样
  • 找项目去哪个网站成都哪里有做网站的公司
  • 网站推广的方法及特点国外专门做童装的网站
  • 企业网站开发模型图wordpress 侧边导航
  • 济南网站系统优化网站建设属于什么专业
  • 114啦建站程序页面效果好的网站
  • 龙华网站建设-信科网络电子商务网站建设和技术现状
  • 网站备案有效期wordpress 评论图片
  • 搭建网站需要哪些步骤wordpress 主题使用
  • 网站怎么发布做微商天眼官方网站
  • qq群网站制作异常网站服务器失去响应
  • aspnet网站开发模板紫光华宇拼音输入法官方下载
  • 东莞网站设计价格wordpress的配置dns
  • 韶关网站建设公司电子商务网站建设考试重点
  • 网站左侧 导航小红书广告投放平台
  • 资阳住房和城乡建设厅网站重庆建设网站建站
  • 网站制作厂家电话多少女生学网络工程难吗
  • 网站建设要经历哪些步骤?网站建设岗位周计划
  • 贵阳网站制作工具福步外贸论坛网首页
  • 网站大全app下载任务发布平台
  • 专业商城网站建设哪家便宜河南做外贸网站的公司
  • seo博客网站东莞网络推广运营企业
  • 定制网站建设公司哪家好嘉兴网站建设多少时间
  • 快三竞猜网站建设wordpress 整站打包
  • 珠海好的网站制作平台微信音乐音频怎么关闭