从12306的崩溃想到负载均衡技术

春节将近,铁路出行迎来新高峰。 铁路部门预计,2020年1月22日(腊月二十八)、1月23日(腊月二十九)为出行高峰期,火车票购票日的12月24日和25日也将迎来抢票最高峰。于是,12306又崩溃了,购买不了票或卡在候补订单支付界面,疑似因流量过大出现崩溃。

然而这并不是一件不能原谅的事情,12306 承受着这个世界上任何秒杀系统都无法超越的 QPS,上百万的并发让服务器很容易扛不住并发的流量或者其他的原因宕机。

百度首席架构师林仕鼎认为,类似于12306的在线交易系统可采用Scale-out这种模式来做,即通过简单地不断添加机器的方式。也就是说,架设这个系统本身并不复杂,12306系统之所以崩溃,主要原因在于请求的尖峰,10倍于平常的压力是很正常的。普通模型到达性能瓶颈后,开始堆积请求(可能在web server,也可能在请求队列,不过通常不会在CDN),吞吐急剧下降,延迟急剧上升,而随着堆积请求越多,情况越糟,引起雪崩效应。而12306的问题就是属于这种情况,这样的压力通常不会持续很久,如果性能不急剧下降的话,一段时间后其实也就能把请求都响应了。但12306的情况则是人们没有买到票,于是不停是刷新,这个操作是不间断的,而且是大规模范围内的,所以宕机也就实属必然。

对于12306这种高并发而言,这其中设备、技术、各应用之间的逻辑关系都得仔细考虑,而技术又包括操作系统Windows,Java,缓存,应用程序,数据库,分布式技术,负载均衡技术等等。

这里详细说一说负载均衡技术通常而言,高并发的系统架构都会采用分布式集群部署,服务上层有着层层负载均衡,并提供各种容灾手段(双火机房、节点容错、服务器灾备等)保证系统的高可用,流量也会根据不同的负载能力和配置策略均衡到不同的服务器上。

负载均衡有三种部署方式:路由模式、桥接模式、服务直接返回模式。路由模式部署灵活,约60%的用户采用这种方式部署;桥接模式不改变现有的网络架构;服务直接返回(DSR)比较适合吞吐量大特别是内容分发的网络应用。约30%的用户采用这种模式。

1、路由模式(推荐)

路由模式的部署方式,服务器的网关必须设置成负载均衡机的LAN口地址,且与WAN口分署不同的逻辑网络。因此所有返回的流量也都经过负载均衡。这种方式对网络的改动小,能均衡任何下行流量。

2、桥接模式

桥接模式配置简单,不改变现有网络。负载均衡的WAN口和LAN口分别连接上行设备和下行服务器。LAN口不需要配置IP(WAN口与LAN口是桥连接),所有的服务器与负载均衡均在同一逻辑网络中。

由于这种安装方式容错性差,网络架构缺乏弹性,对广播风暴及其他生成树协议循环相关联的错误敏感,因此一般不推荐这种安装架构。

3、服务直接返回模式

这种安装方式负载均衡的LAN口不使用,WAN口与服务器在同一个网络中,互联网的客户端访问负载均衡的虚IP(VIP),虚IP对应负载均衡机的WAN口,负载均衡根据策略将流量分发到服务器上,服务器直接响应客户端的请求。因此对于客户端而言,响应他的IP不是负载均衡机的虚IP(VIP),而是服务器自身的IP地址。也就是说返回的流量是不经过负载均衡的。因此这种方式适用大流量高带宽要求的服务。

发表于: 2019-12-24 15:36 阅读(4) 评论(0) 收藏 好文推荐

发表评论(网友发言只代表个人观点,不代表本网站观点或立场。)

您尚未登录,请先【登录或注册