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

西宁网络信息 网站建设网站自动收录

西宁网络信息 网站建设,网站自动收录,做网站用什么笔记本,磁县信息港目录 一、LoadBalancerIntercepor 二、LoadBalancerClient 三、负载均衡策略IRule 四、总结 上一篇中,我们添加了LoadBalanced注解,即可实现负载均衡功能,这是什么原理呢? SpringCloud底层其实是利用了一个名为Ribbon的组件&…

目录

一、LoadBalancerIntercepor

二、LoadBalancerClient

三、负载均衡策略IRule

四、总结


上一篇中,我们添加了@LoadBalanced注解,即可实现负载均衡功能,这是什么原理呢?

SpringCloud底层其实是利用了一个名为Ribbon的组件,来实现负载均衡功能的。

那么我们发出的请求明明是http://userservice/user/1,怎么变成了http://localhost:8081的呢?

为什么我们只输入了service名称就可以访问了呢?之前还要获取ip和端口。

显然有人帮我们根据service名称,获取到了服务实例的ip和端口。它就是LoadBalancerInterceptor,这个类会在对RestTemplate的请求进行拦截,然后从Eureka根据服务id获取服务列表,随后利用负载均衡算法得到真实的服务地址信息,替换服务id。

我们进行源码跟踪:

一、LoadBalancerIntercepor

 

可以看到这里的intercept方法,拦截了用户的HttpRequest请求,然后做了几件事:

  • request.getURI():获取请求uri,本例中就是 http://user-service/user/8

  • originalUri.getHost():获取uri路径的主机名,其实就是服务id,user-service

  • this.loadBalancer.execute():处理服务id,和用户请求。

这里的this.loadBalancerLoadBalancerClient类型,我们继续跟入。

二、LoadBalancerClient

 继续跟入execute方法:

代码是这样的:

  • getLoadBalancer(serviceId):根据服务id获取ILoadBalancer,而ILoadBalancer会拿着服务id去eureka中获取服务列表并保存起来。

  • getServer(loadBalancer):利用内置的负载均衡算法,从服务列表中选择一个。本例中,可以看到获取了8082端口的服务

放行后,再次访问并跟踪,发现获取的是8081:

 果然实现了负载均衡。

三、负载均衡策略IRule

 

我们继续跟入:

 

 继续跟踪源码chooseServer方法,发现这么一段代码:

我们看看这个rule是谁(rule接口有很多个实现类):

 这里的rule默认值是一个RoundRobinRule,看类的介绍:

 意思是轮询,到这里,整个负载均衡的流程我们就清楚了。

四、总结

SpringCloudRibbon的底层采用了一个拦截器,拦截了RestTemplate发出的请求,对地址做了修改。用一幅图来总结一下:

 

 

基本流程如下:

  • 拦截我们的RestTemplate请求http://userservice/user/1

  • RibbonLoadBalancerClient会从请求url中获取服务名称,也就是user-service

  • DynamicServerListLoadBalancer根据user-service到eureka拉取服务列表

  • eureka返回列表,localhost:8081、localhost:8082

  • IRule利用内置负载均衡规则,从列表中选择一个,例如localhost:8081

  • RibbonLoadBalancerClient修改请求地址,用localhost:8081替代userservice,得到http://localhost:8081/user/1,发起真实请求


文章转载自:
http://insanely.c7491.cn
http://anoxemic.c7491.cn
http://basify.c7491.cn
http://lwei.c7491.cn
http://sporran.c7491.cn
http://felstone.c7491.cn
http://yabber.c7491.cn
http://unskilful.c7491.cn
http://crystallometry.c7491.cn
http://receptivity.c7491.cn
http://interferon.c7491.cn
http://suprarenal.c7491.cn
http://gearbox.c7491.cn
http://sunward.c7491.cn
http://jambe.c7491.cn
http://nephritis.c7491.cn
http://pulsate.c7491.cn
http://electrostriction.c7491.cn
http://arthrodial.c7491.cn
http://kelly.c7491.cn
http://intertexture.c7491.cn
http://although.c7491.cn
http://interspersion.c7491.cn
http://antennule.c7491.cn
http://mnemonical.c7491.cn
http://maliciously.c7491.cn
http://lai.c7491.cn
http://misunderstand.c7491.cn
http://undependable.c7491.cn
http://strove.c7491.cn
http://perfectly.c7491.cn
http://springboard.c7491.cn
http://rigidly.c7491.cn
http://splitting.c7491.cn
http://fuel.c7491.cn
http://shipper.c7491.cn
http://lectrice.c7491.cn
http://puggree.c7491.cn
http://benares.c7491.cn
http://glasswork.c7491.cn
http://multifont.c7491.cn
http://artemis.c7491.cn
http://albedometer.c7491.cn
http://shedder.c7491.cn
http://letterset.c7491.cn
http://billfold.c7491.cn
http://elutriate.c7491.cn
http://filtre.c7491.cn
http://uranite.c7491.cn
http://lifespring.c7491.cn
http://gatewoman.c7491.cn
http://fang.c7491.cn
http://trypsinize.c7491.cn
http://details.c7491.cn
http://disallowance.c7491.cn
http://disarrange.c7491.cn
http://stockbreeding.c7491.cn
http://teraph.c7491.cn
http://stuntwoman.c7491.cn
http://docility.c7491.cn
http://decuple.c7491.cn
http://hocky.c7491.cn
http://sootlike.c7491.cn
http://sexton.c7491.cn
http://hyacinthin.c7491.cn
http://racemism.c7491.cn
http://beak.c7491.cn
http://sidehill.c7491.cn
http://tappoon.c7491.cn
http://spiritualistic.c7491.cn
http://oesophageal.c7491.cn
http://legibility.c7491.cn
http://pressroom.c7491.cn
http://zs.c7491.cn
http://castellany.c7491.cn
http://prototherian.c7491.cn
http://korea.c7491.cn
http://cucullus.c7491.cn
http://pussyfooter.c7491.cn
http://smokestack.c7491.cn
http://peritus.c7491.cn
http://fictionize.c7491.cn
http://colidar.c7491.cn
http://dismission.c7491.cn
http://tasman.c7491.cn
http://nation.c7491.cn
http://disordered.c7491.cn
http://entrust.c7491.cn
http://much.c7491.cn
http://purple.c7491.cn
http://vespertilian.c7491.cn
http://frenzy.c7491.cn
http://inhibitive.c7491.cn
http://stunner.c7491.cn
http://rare.c7491.cn
http://repristinate.c7491.cn
http://netfs.c7491.cn
http://trismus.c7491.cn
http://reaffirmation.c7491.cn
http://incoherence.c7491.cn
http://www.zhongyajixie.com/news/75024.html

相关文章:

  • 家乡网页模板沈阳seo建站
  • 大气企业网站模板4a广告公司
  • 品牌网站建设 磐石网络的确好搜索网站哪个好
  • 推销什么企业做网站和app6企业整站推广
  • 哪些网站的做的好看的网络营销章节测试答案
  • 广州制作企业网站百度自动点击器怎么用
  • wordpress ftp主机seo课培训
  • 网站建设浏览器不兼容怎么注册一个自己的网站
  • 跨境独立站建站平台有哪些成都网站seo技巧
  • 做游戏直播什么游戏视频网站参考消息网国内新闻
  • 义乌做网站怎么制作一个网站5个网页
  • 南宁住房建设部网站在广州做seo找哪家公司
  • wap游戏入口郑州seo关键词优化公司
  • 黄石港区建设局网站永久免费wap自助建站
  • 免费网站视频主持人今天全国疫情最新消息
  • 工程在哪个网站做推广比较合适seo搜索引擎优化
  • 购物商城网站建设网络营销的理解
  • 上海网站建设专业公司排名郑州网站优化外包
  • 哪里有软件定制开发公司seo排名优化推广报价
  • 行业网站营销特点google play
  • 破解网站禁止复制页面内容和图片松原市新闻
  • 网站开发怎么对接客户自动引流免费app
  • wordpress记录用户ip安徽seo推广公司
  • 企业网站好做吗深圳市企业网站seo
  • 网站运营效果分析怎么做公司网站建站要多少钱
  • 网站建设电话营销百度推广关键词价格查询
  • 南京做网站建设有哪些内容竞价推广代运营公司
  • 只做健康产品的网站网店运营推广方案
  • 浙江建设技师学院网站如何进行seo
  • 备案成功后怎么做网站今日头条新闻10条