新闻动态

负载均衡:做了「负载均衡」就可以随便加服务器了吗?

发布日期:2021-01-02 16:13 | 文章来源:YINGSOO

  【温馨提醒】文章内容仅供参考,海外服务器租用\托管方案,请咨询YINGSOO客服,24小时免费电话400-630-3752

  【热门主机】香港云服务器bgp高防服务器租用

  【热搜问题】香港站群服务器多ip

负载均衡

  下面这个场景不知是否在你面前出现过:

  开发Z哥对运维Y弟喊:“Y弟,现在系统好卡,刚上了一波活动,赶紧帮我加几台机器上去顶一下。”

  Y弟回复说:“没问题,分分钟搞定”。

  然后就发现数据库的压力迅速上升,dbA就吼了:“Z哥,你丫的搞什么呢?数据库要被你弄垮了”。

  然后客服那边接框也爆炸了,越来越多的用户说刚登陆后没多久,操作着就退出了,接着登陆,又退出了,到底还做不做生意了。

  这些问题背后都是由于一个「session丢失」问题导致的。

  一、什么是session丢失

  相信session对大部分coder来说应该都知道。它是为了将同一个用户的多次访问在系统中被识别为“同一个用户”而产生的概念。除此之外,还可以基于它来减少重复往db或者远程服务处获取与该用户[客服案例]相关的信息,以起到提升性能的作用。

  在我们做了负载均衡的场景中,如果选择的负载策略是hash策略,那么会使得session产生一个副作用,这个副作用就如上面举的案例那样,用户一旦由于某种原因从原先访问服务器A变成访问服务器b,就会出现“登陆状态丢失”、“缓存穿透”等问题。

  为什么hash策略会出现这个问题呢?首先有必要先了解一下hash是如何进行的。hash策略就是下图这样的一个散列函数。在函数不变的情况下,A永远对应01,b对应04[菲律宾云服务器推荐],c对应08。

  以nginx中的ip_hash策略来举个例子。因为我们认为正常情况下用户的ip不会在短时间内发生变化,所以当我们选择使用ip_hash策略进行负载均衡时,意味着期望同一个用户能够一直访问到同一台服务器上,就像下图这样,图中的hash函数是最简单的随意举例。

  如此一来,我们只需要在这一台服务器上将这个用户相关的信息缓存在进程内,就能起到非常高性价比的提升性能的效果。

  这时,客户端与服务端之间的相当于建立了一个信任,相互认识。这个信任就是「session」。

  但是,当我们加了一台服务器之后,事情就发生变化了,图中的hash函数是最简单的随意举例。

  这个时候我们原先的预期就被破坏了。因为用户与序号0节点的链接变成了与序号3的链接,所以产生了前面提到的「session丢失」问题。与此同时,在序号0节点上做的进程内缓存都无效了,而在序号3节点上又没有用户相关的任何缓存,导致大量数据需要从下游的db或者远程服务处获取。你要知道,一旦涉及到网络通信,性能必然明显下降,i/o、序列化都是耗时的工作。更重要的是,一旦同时有大量用户产生这个情况,由于后端的db和远程服务瞬时无法承载激增的高密度请求,可能会导致它挂起。这还没完,如果当前程序没有一些故障隔离或者降级策略,还会进一步产生蝴蝶效应,导致整个大系统响应缓慢。可谓“一颗老鼠屎坏了一锅粥”。

  二、nginx是如何来解决这个问题的

  既然以nginx举例,还是从nginx开始聊。通过在nginx中引入nginx-sticky-module模块可以来解决这个问题。解决的整个过程如下。

  可以看到,当client第一次进入到nginx匹配节点的时候,在给它分配一个节点的同时,会将这个节点的唯一标识进行md5后写入到cookie中一并返回,如果下次再发起请求的时候发现带有这个cookie值,就直接转发到该值所对应的节点上去。这个机制被专业的称之为「session保持」。

  虽然可以利用cookie来解决这个问题,但是cookie也有一个潜在的问题,如果客户端未开启cookie功能,这个机制就失效了。不过好在目前主流浏览器都是默认打开cookie的。

  题外话:nginx是2004年发布的,在nginx-sticky-module出现之前的7年间也是nginx相比竞品HAproxy最大的一个短板,因为HAproxy支持session保持。

  三、session保持的其它方案

  除了cookie之外,还有2种方式也可以最终达到类似的效果。分别被称为「session复制」、「session共享」。

  1、session复制

  这是最简单粗暴的方式。根据第一节的案例来看,导致问题的原因是节点3没有用户的session。那么很容易想到,在节点3运行之前把session相关的cache数据复制过去呗。并且在多个节点之间持续保证数据的同步,也就是说,每一台节点上都存在每个用户的session数据。

  实现的方案有很多,特别是不同的宿主程序都或多或少提供了一些切入点,甚至是拿来即用的方案,如tomcat的delta manager和backup manager、tomcat和iis的Filter机制等等,这里就不展开了。

  此类方案的特点是:

  优点:本公司。 session 共享。所有节点共用一份数据。

  越大型的系统,最终都会往「session共享」这个方案上走,因为只要再对这个共享存储做横向扩展,理论上就可以支撑无穷大的用户了。如Redis、一系列的nosQL以及newsQL等。就像下面这样,集「规模大」、「高可用」、「效果好」于一身。

  四、结语

  现在你应该清楚了session丢失问题,也知道了如何去应对他。但是,我们还需要明白一个事实:严格来说「session保持」本质上是破坏了做「负载均衡」的初衷。举个极端点的场景:一共有10个会话连在了节点A上,并且都是活动中状态。那么这个时候哪怕增加一个节点b上线,只要没有新的会话进来,节点b上的活动连接数永远是0,并没有起到分担压力的作用。

  但是,在系统的起步时期,其实用这样简单的方案也是极好的。(作者:Zachary;来源:Java后端技术)

  

  如何判[高防美国服务器]断香港vps的好坏

  现如今大家都会想要去搭建一个网站,因为不管是企业还是个人,只要拥有了一个网站,那么后续的相关的操作就会带来极大的便利,但是由于国内的网站搭建它必须要向有关部门申请备案。而这个备案的过程其实是非常麻烦的,它既需要我们花时间去进行操作,同时也需要投入非常多的精力,这样一来就会影响到我们的网站搭建的步骤,所以人们现如今会更加愿意去选择香港vps,因为香港vps主机是不需要大家进行备案的同时,我们大陆地区访问的速度相对于国外的vps也要更快,所以目前它已经成为了国内的网站建设者最信赖的产品。

  也正是由于现在需要香港vps的人数量变得越来越多,这就导致有很多的网络建设者在购买香港vps的过程当中,很容易出现买到一些质量并不是非常好的现象,那如果我们花了钱,但是购买到的vps主机,却不是我们想象当中的那么好的话,这肯定会影响到我们的后续的网站建设,而且这一类型的vps主机使用起来也经常会出现问题,导[服务器如何抵抗洪水攻击]致网站的访问速度比较慢,而且运行也并不是非常的稳定,所以新手在挑选香港的vps主机的时候,还是应该要去掌握一定的判别方法,就当你懂得了如何去判别香港的vps主机的好坏的时候,我们才可以帮助自己挑选到最好的vps主机。大家在购买香港的vps主机的时候,首先要做到的就是去认定这个主机供应商的资质究竟是怎样的,以及它的机房的存放地点是在哪里?接着再去查看它的带宽资源,因为带宽资源会直接影响到我们的网站访问速度和网站的稳定性,除此之外我们还必须要去了解这个供应商,它能不能够为我们提供更好的售后服务。

  有一部分的,用户会认为机房的好坏会直接决定香港的vps的好坏。因为在香港存在不少的私人机房,而有一部分的私人机房,他为了赚取利润,所以就会去使用一些质量并不是非常好的硬件,这样就会导致机房的环境相对来说会比较差。甚至它并不存在宽带监控等服务,那这样一来我们的运行环境肯定就会存在问题。这就告诫我们的用户,在挑选的过程当中必须要去选择机房最好的那个供应商。当然大家也必须要去注意vps的大小是否是真实的,因为有时候主机商会给大家画一个大饼告诉你,这个vps究竟有多大,但实际上它的大小其实并没有达到供应商所说的那个规模,这其实是欺骗客户的一种行为,那如果你没有去注意它的这个大小规模的真实性的话,就很容易上当受骗

  正常情况下,大家在和这个供应商进行合作之前,首先在市场当中去了解供应商的口碑,如果他的口碑会比较好的话,那大家就可以放心的跟他进行合作。只要你不是一味的贪图小便宜的话,那么我们选择的vps供应商其实都不会差到哪里去。

  YINGSOO:www.Yingsoo.com

  热门文章:【香港cn2服务器推荐】【ddos防御多少钱】【韩国VPS该怎样起一个价值千万的域名】【国外云主机服务商推荐】【商家服务器】【免备案云平台】【传奇服务器租用】【德国云服务器优势有哪些】【选择云服务器】【网站空间】【短视频服务器】【游戏高防服务器】【云专线云专线优化】【方舟进化服务器】【都在用的韩国低价高配服务器】【香港服务器托管简介及优缺点】【路由企业】【Linux空间的三个小知识点】【新加坡主机】【刀塔传奇服务器】【服务器物理】【如何选购独立香港服务器】【CC防御服务器租用价格】【我的世界服务器租用】【浙江电信带宽服务器租用】【电信服务器租用】【外贸抗投诉服务器租用的相关问题】【国外服务器地址在哪里看】【怎么租国外的服务器】【云免服务器购买

  YINGSOO用美国的主机_免费CC防御流量_无需备案

  用美国的主机美国vps超宽国际出口 , 一手资源 , 重装系统 , 10MB独享带宽 ,在线有重启 , 无极网络 , 高速稳定,年付8.3折优惠

  https://www.yingsoo.com/products/cloud-us.html

  快人一步!!YINGSOO主机托管台湾延迟低至35ms!

  主机托管台湾,Hinet机房合作,五星贴心服务,免备案高品质主机托管台湾,延迟低至40ms.YINGSOO新版云控制台上线,主机托管台湾钜惠来袭,注册送优惠码,年付8.3折!

  https://www.yingsoo.com/products/cloud-tw.html

版权声明:本站文章来源标注为YINGSOO的内容版权均为本站所有,欢迎引用、转载,请保持原文完整并注明来源及原文链接。禁止复制或仿造本网站,禁止在非www.yingsoo.com所属的服务器上建立镜像,否则将依法追究法律责任。本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。

相关文章

实时开通

自选配置、实时开通

免备案

全球线路精选!

全天候客户服务

7x24全年不间断在线

专属顾问服务

1对1客户咨询顾问

在线
客服

在线客服:7*24小时在线

客服
热线

400-630-3752
7*24小时客服服务热线

关注
微信

关注官方微信
顶部