您的位置:新闻资讯 >文章内容
用代理IP剖析淘宝服务器的架构历程
来源:精灵代理 作者:admin 时间:2020-08-10 17:14:45

  用代理IP剖析淘宝服务器的架构历程!淘宝每年双十一的战绩,据说每秒服务器上可能就得承受上千万次的交易支付请求,如此巨大的流量,大家是否好奇服务器是怎么处理得过来的。进入大数据流量时代,今天就让精灵代理给大家好好科普一番。

用代理IP剖析淘宝服务器的架构历程

  跟着代理IP一起认识架构演进:

  纯真年代:单机架构

  以淘宝作为例子:在网站最初时,应用数量与用户数都较少,可以把Tomcat和数据库部署在同一台服务器上。

  浏览器往taobao发起请求时,首先经过DNS服务器(域名系统)把域名转换为实际IP地址10.102.4.1,浏览器转而访问该IP对应的Tomcat。

  架构瓶颈:随着用户数的增长,Tomcat和数据库之间竞争资源,单机性能不足以支撑业务。

  第一次演进:Tomcat与数据库分开部署

  Tomcat和数据库分别独占服务器资源,显著提高两者各自性能。

  架构瓶颈:随着用户数的增长,并发读写数据库成为瓶颈。

  第二次演进:引入本地缓存和分布式缓存

  在Tomcat同服务器上或同JVM中增加本地缓存,并在外部增加分布式缓存,缓存热门商品信息或热门商品的html页面等。通过缓存能把绝大多数请求在读写数据库前拦截掉,大大降低数据库压力。

  其中涉及的技术包括:使用memcached作为本地缓存,使用Redis作为分布式缓存,还会涉及缓存一致性、缓存穿透/击穿、缓存雪崩、热点数据集中失效等问题。

  架构瓶颈:缓存抗住了大部分的访问请求,随着用户数的增长,并发压力主要落在单机的Tomcat上,响应逐渐变慢。

  第三次演进:引入反向代理实现负载均衡

  在多台服务器上分别部署Tomcat,使用反向代理软件(Nginx)把请求均匀分发到每个Tomcat中。

  此处假设Tomcat最多支持100个并发,Nginx最多支持50000个并发,那么理论上Nginx把请求分发到500个Tomcat上,就能抗住50000个并发。

  其中涉及的技术包括:Nginx、HAProxy,两者都是工作在网络第七层的反向代理软件,主要支持http协议,还会涉及session共享、文件上传下载的问题。

  架构瓶颈:反向代理使应用服务器可支持的并发量大大增加,但并发量的增长也意味着更多请求穿透到数据库,单机的数据库最终成为瓶颈。

  第四次演进:数据库读写分离

  把数据库划分为读库和写库,读库可以有多个,通过同步机制把写库的数据同步到读库,对于需要查询最新写入数据场景,可通过在缓存中多写一份,通过缓存获得最新数据。

  其中涉及的技术包括:Mycat,它是数据库中间件,可通过它来组织数据库的分离读写和分库分表,客户端通过它来访问下层数据库,还会涉及数据同步,数据一致性的问题。

  架构瓶颈:业务逐渐变多,不同业务之间的访问量差距较大,不同业务直接竞争数据库,相互影响性能。

  第五次演进:数据库按业务分库

  把不同业务的数据保存到不同的数据库中,使业务之间的资源竞争降低,对于访问量大的业务,可以部署更多的服务器来支撑。

  这样同时导致跨业务的表无法直接做关联分析,需要通过其他途径来解决,但这不是本文讨论的重点,有兴趣的可以自行搜索解决方案。

  架构瓶颈:随着用户数的增长,单机的写库会逐渐会达到性能瓶颈。

  当然了,演进到这里还只是前戏,真正的重头戏还在后头,大家请记住关注精灵代理带来的分享。


相关文章内容简介
在线咨询
大客户经理
大客户经理
13318873961

大客户经理微信

微信公众号

微信公众号

回到顶部