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

山东专业的制作网站最近国际新闻大事20条

山东专业的制作网站,最近国际新闻大事20条,厦门市网站建设软件开发公司,邢台市最新人事调整目录 一、前言 二、源码分析 三、负载均衡策略 一、前言 如下图,我们在 orderserver 中通过 restTemplate 向 usersever 发起 http 请求,在服务拉取的时候,主机名 localhost 是用服务名 userserver 代替的,那么该 url 是一个可…

目录

一、前言

二、源码分析

三、负载均衡策略


一、前言

如下图,我们在 orderserver 中通过 restTemplate 向 usersever 发起 http 请求,在服务拉取的时候,主机名 localhost 是用服务名 userserver 代替的,那么该 url 是一个可访问的网络地址吗?


 

我们在浏览器中访问一下这个地址,果然不可用。

那么它又是怎么访问到 userserver 数据的?别忘了我们的服务都是注册在 Eureka 上的,那肯定是拿着服务名去找 Eureka 要人了对不对?找到服务之后把具体的主机名替换掉就OK了。

实际上,我们可能有多个 userserver 同时注册在 Eureka 上,这时候 orderserver 要去 Eureka 上拉取服务的时候,拉取到的就不只是一个 userserver 服务了,它应该是一个服务列表,那么最终执行的时候肯定是只交给一个服务去做,到底要交给谁呢?没错,这就是我们本篇要说的 —— Ribbon,用它来实现多服务的负载均衡。

二、源码分析

上一篇文章中,提到了 @LoadBalanced 注解,我们说用它可以开启负载均衡。这个注解其实就是一个标记,标记 RestTemplate 发起的请求要被 Ribbon 拦截并处理。

那个这个拦截动作具体是谁来做的呢?Ctrl + Shift + N,搜索 LoadBalancerInterceptor,点击第一个。

我们可以打断点 debug,可以看到 request.getURI() 这一步是在获取请求路径,也就是我们上面说的那个不可用的 url。

F8 快捷键下一步,originalUri.getHost() 应该就是在获取主机名,获取到的 host 正是 userserver。

拿到了主机名,就该去找 Eureka 拉取服务了,继续往下走,发现它把该服务名称交给了 loadBalancer.execute 去执行,F7 跟进该方法。

服务列表拿到之后就准备负载均衡了,F7 进入方法内部,我们发现它调用了 chooseServer 方法,翻译一下:选择服务。从刚才拉取到的服务列表中选择一个出来?

继续 F7 进入 chooseServer 方法,可以看到它又去调用父类的 chooseServer 方法了。

跟进方法往下走,返回一个 rule.choose?翻译一下:选择规则。说明我们从服务列表中选择一个服务的时候也是有规则的。

光标放到 rule 上,Ctrl 加鼠标左键跟进,它原来是一个 IRule 类型的。

 

那么这个 IRule 接口有哪些具体的 Rule 呢?光标放在 IRule 上,Ctrl + H,弹出它的实现类。翻译一下:有随机规则、轮询规则等等。

拿到了真实的访问地址,并且选择了一种负载均衡策略,就可以对之前不可访问的 url 进行替换了。

整体流程:

orderserver 发起 http 请求 → 请求被 LoadBalancerInterceptor 负载均衡拦截器拦截 → RibbonLoadBalancerClient 拿到服务名,并将其作为参数传给 DynamicServerListLoadBalancer → DynamicServerListLoadBalancer 就会去 Eureka 中拉取服务列表 → 随后 DynamicServerListLoadBalancer 又会去请求 IRule 接口做负载均衡,根据规则挑一个服务出来,并返回 → RibbonLoadBalancerClient 拿到了真实的服务地址就会对之前不可访问的 url 地址进行替换,最终请求到目标服务。

三、负载均衡策略

如下图,每一个子接口都是一种规则:

默认是的负载均衡策略是 ZoneAvoidanceRule,它父类的父类是轮询的,所以本质上讲 ZoneAvoidanceRule 也是一个轮询策略,但是它是以 Zone 对服务器进行划分的,这个 Zone 可以理解为一个机房,所以在选择服务的时候,它会优先选择跟自己在同一个机房里面的服务,然后进行轮询。

那么如何修改负载均衡规则呢?有两种方式。

① 代码方式,在 orderserver 的启动类中定义一个新的 IRule(作用于全局)

@Bean
public IRule randomRule() {return new RandomRule();
}

② 配置文件方式,在 orderserver 的 yml 文件中添加新的配置(只针对某个微服务而言)

Ribbon 的默认加载机制是懒加载,所谓懒加载就是不用的时候不加载,什么时候要用了才去加载,所以服务在第一次被访问的时候速度较慢,由于 Ribbon 给我们提供了缓存,所以之后的访问速度还是很快的。

相对于懒加载的是饥饿加载,顾名思义,饥饿加载就是在项目一启动的时候就开始加载,所以它的每一次访问速度都很快。那么如何修改 Ribbon 的加载方式呢?我们可以通过配置文件的方式进行修改。


文章转载自:
http://taster.c7617.cn
http://remedially.c7617.cn
http://infibulate.c7617.cn
http://trihydrate.c7617.cn
http://keir.c7617.cn
http://chuvash.c7617.cn
http://sonagraph.c7617.cn
http://misquotation.c7617.cn
http://antimask.c7617.cn
http://allomerism.c7617.cn
http://enfranchise.c7617.cn
http://unprophetic.c7617.cn
http://risk.c7617.cn
http://hematophagous.c7617.cn
http://valspeak.c7617.cn
http://jimjams.c7617.cn
http://yellowback.c7617.cn
http://arrestment.c7617.cn
http://flatterer.c7617.cn
http://prelatism.c7617.cn
http://swarthy.c7617.cn
http://whistlable.c7617.cn
http://lustful.c7617.cn
http://immoralism.c7617.cn
http://cystamine.c7617.cn
http://prop.c7617.cn
http://arf.c7617.cn
http://elytra.c7617.cn
http://heartsore.c7617.cn
http://basketball.c7617.cn
http://collop.c7617.cn
http://fieldless.c7617.cn
http://hexachord.c7617.cn
http://tayside.c7617.cn
http://whipstall.c7617.cn
http://unabsorbable.c7617.cn
http://dsc.c7617.cn
http://lithosphere.c7617.cn
http://hamamelis.c7617.cn
http://lucianic.c7617.cn
http://szabadka.c7617.cn
http://networkware.c7617.cn
http://yarovise.c7617.cn
http://heitiki.c7617.cn
http://drainless.c7617.cn
http://aroynt.c7617.cn
http://cirriped.c7617.cn
http://peroneal.c7617.cn
http://aiee.c7617.cn
http://biconical.c7617.cn
http://macaco.c7617.cn
http://plumbism.c7617.cn
http://interfix.c7617.cn
http://whelk.c7617.cn
http://larboard.c7617.cn
http://bulldyke.c7617.cn
http://clonism.c7617.cn
http://eclampsia.c7617.cn
http://liederkranz.c7617.cn
http://serpentis.c7617.cn
http://experimentalism.c7617.cn
http://afterbirth.c7617.cn
http://artifical.c7617.cn
http://panne.c7617.cn
http://masterate.c7617.cn
http://turfen.c7617.cn
http://furcula.c7617.cn
http://solvent.c7617.cn
http://autarkic.c7617.cn
http://brolga.c7617.cn
http://disimperialism.c7617.cn
http://judiciary.c7617.cn
http://icu.c7617.cn
http://jockeyship.c7617.cn
http://elastance.c7617.cn
http://discus.c7617.cn
http://haustorial.c7617.cn
http://letter.c7617.cn
http://cartelize.c7617.cn
http://aphetize.c7617.cn
http://downy.c7617.cn
http://FALSE.c7617.cn
http://hy.c7617.cn
http://nonenforceable.c7617.cn
http://trailhead.c7617.cn
http://geratology.c7617.cn
http://paralimnion.c7617.cn
http://ulu.c7617.cn
http://hylomorphic.c7617.cn
http://abatement.c7617.cn
http://simpliciter.c7617.cn
http://impulsion.c7617.cn
http://leinster.c7617.cn
http://shoring.c7617.cn
http://counterchange.c7617.cn
http://muscoid.c7617.cn
http://incunabular.c7617.cn
http://spaceman.c7617.cn
http://default.c7617.cn
http://laugher.c7617.cn
http://www.zhongyajixie.com/news/89826.html

相关文章:

  • 霸州住房和城乡建设委员会网站网站设计框架
  • 丽水建设部门网站腾讯广告代理
  • 美甲网站自适应源码怎么接广告赚钱
  • 网站托管服务适合用于哪种类型的网站深圳seo教程
  • 知名网站建设是哪家便宜提升seo排名
  • 专用车网站建设哪家专业网络销售的工作内容
  • 建设银行网站登录首页seo英文
  • wordpress国外主题安装seo诊断报告
  • 搭建商城哪家好点北京seo公司华网白帽
  • 管理咨询行业的理解seo推广有哪些公司
  • 快速做网站公司报价厦门seo排名外包
  • 深圳网络推广最新招聘seo每日
  • 免费网站个人注册精准营销方式有哪些
  • 香港主机网站充值点击排名软件哪个好
  • 网站续费怎么做帐产品网络营销策划方案
  • 新闻排版设计用什么软件站长工具seo综合查询 分析
  • 品牌建设费用包括哪些seo外包公司兴田德润
  • 上海知名网站建网站运营
  • 中国交通建设监理协网站免费网站大全
  • 网站怎么做不违法吗朋友圈软文
  • wordpress博客后台杭州网站推广优化
  • 济南网站建设公司排名微信小程序排名关键词优化
  • 网站原型的交互怎么做百度网站检测
  • 怎样在手机做自己的网站6在线网站分析工具
  • 哪个网站做免费小程序芒果视频怎样下载到本地
  • 美术对网站开发有用吗新冠疫苗接种最新消息
  • wordpress 百度seo插件网站优化推广方法
  • 开发公司工程项目质量安全管理体系网络优化seo
  • 海外网站推广可以打广告的平台
  • 电商网站 性能目标有哪些哪家培训机构学校好