《大型网站技术架构》个人浅析

计划每周写一篇个人浅析,不论技术深浅,算是一种每周小结,也算是对最近学习到的知识的一种分享。

本文是笔者看《大型网站技术架构》刚好两个星期后,觉得在视野或知识广度上收货颇多,所以想要写写个人见解。

 

前言、

在生活中一般来说,我们向往的是“大”或者说“多”,反正就是要好, 即公司要大,Money要多,身体要好等等,那么对于技术架构来说,没有用过的才是最爽的,当熟练掌握一个框架后(具体满意程度看个人追求),那么学习的目标就变成了下一个框架,对于架构设计也是,当小型架构掌握了搭建及优化以后, 就去追求大型架构的搭建以及优化。所以这本书也是一开始站在小型设计但速度极快地转移到至高点的角度来讲架构设计,不过,书名本来就叫做《大型……》,所以一切以高并发、海量数据、N个模块业务的情况下讲解。

整体来说,所有的架构设计,都为了实际业务服务,即都是为了系统的可用性、性能、可伸缩性、可扩展性、安全性、安全在做架构设计。

 

 

一、前台请求到应用服务器的过程

用户请求网址如www.baidu.com(这一步可以进行CDN加速(网络第一跳))----->通过DNS域名解析(第一级负载均衡)------>负载均衡服务器集群(第二级负载均衡)------>应用服务器集群(分布式业务部署)--------->分库分表的数据库Cobar代理服务器集群---------->关系型数据库集群

一般来说是这么个过程, 但不止这些, 诸如缓存服务器集群、NoSQL数据库集群,我们一点一点来说。

 

1、CDN加速

CDN(Content Distribute Network,内容分发网络)的本质是一种缓存,而且把数据缓存在离用户最近的地方,使用户在最快的情况下获取数据,即所谓的网络第一跳。CDN服务器部署在网络运营商的机房,这些运营商又是用户的网络提供商,所以用户请求服务时,第一跳则到了CDN服务器,当CDN中存在该次请求中需要的数据时,则最短路径返回,加快用户访问速度,一般来说,CDN服务器放置一些高频访问的静态资源。(如图片、文件、CSS、Script脚本、静态页面等)

CDN加速我的理解下是一种缓存服务器地域部署手段,我们知道当业务、企业足够大时,服务器不可能只是在某个城市集中,这是因为网络通讯在一定程度上来说是越远越慢,所以当用户遍布全国或全球时,需要在用户请求的当地服务商处建立就近的静态资源缓存服务器。

 

2、DNS域名解析

一个以域名形式的请求,最终只会被解析成一个IP,但是在域名服务商那里,你可以把服务器群里面的多个提供相同服务的服务器IP设置一个域名可以轮询,这些IP可以轮流着被解析。只需要在DNS服务器中配置多个记录,如:www.baidu.com   IN  A  100.0.0.1、www.baidu.com   IN  A  100.0.0.2、www.baidu.com   IN  A  100.0.0.3。

每次域名解析的时候都会通过负载均衡算法计算一个不同的IP进行返回,这样就可以实现第一个层级的负载均衡。一般来说,通过DNS解析得到的IP,是第二级负载均衡服务器的集群。

 

3、负载均衡服务器集群

负载均衡的手段有很多种:Http重定向负载均衡、DNS域名解析负载均衡、反向代理负载均衡、IP负载均衡、数据链路层负载均衡,各自有各自的负载均衡算法。所以也实现了不同方式的负载均衡。

3.1 Http重定向负载均衡

当用户请求域名时,通过DNS解析得到IP,此IP访问的是Http重定向负载均衡服务器,Http重定向负载均衡服务器根据负载均衡算法计算出一台真实的应用服务器,并将该应用服务器地址写入Http重定向响应中(响应状态码302)返回给用户浏览器,浏览器再自动重新请求实际的物理应用服务器进行访问。

这种负载均衡的优点是比较简单,缺点是二次请求性能比较差、且302重定向会使搜索引擎可能认为是SEO作弊,降低搜索排名。

 

 

3.2 反向代理负载均衡

反向代理服务器一般来说有两种作用, 第一种是缓存, 第二种是负载均衡。由于起转发请求在HTTP协议层面,所以也叫应用层负载均衡。

用户请求反向代理服务器,而反向代理服务器具备双网卡(内部+外部),通过负载均衡算法计算出请求转发的IP地址,进行请求转发,当业务处理结束后物理应用服务器返回给反向代理服务器,再由反向代理服务器返回给用户浏览器。

优点: 部署简单 

缺点:反向代理服务器是请求转发和响应的中心位置,性能可能成为架构的瓶颈。

 

3.3 IP负载均衡

主要原理如图所示: 早网络层通过修改请求目的地址进行负载均衡。

这里的关键是应用服务器集群的响应数据包如何返回负载均衡服务器,有两种方案:①在负载均衡请求数据目的IP地址时,将请求的源地址换成负载均衡服务器的IP地址即源地址转换(SNAT)技术。①把负载均衡服务器同时作为物理应用服务器的网关服务器,这样所有的响应数据都会达到负载均衡服务器。

优点: 在内核进程进行数据分发,比反向代理来说有更好的性能

缺点:所有的请求和响应都依赖于负载均衡服务器,所以系统的最大吞吐量受限于负载均衡服务器的网卡带宽。

 

 

3.4 数据链路层负载均衡

数据链路层的负载均衡指在通信协议的数据链路层修改mac地址进行负载均衡。

这种数据传输方式又被称为三角传输模式,负载均衡的过程中不修改IP地址,只修改目的的mac地址,通过配置物理应用服务器集群的所有服务器的虚拟IP与负载均衡服务器的IP一致,使得返回时不需要经过负载均衡服务器的IP转换,可将数据包直接返回给用户浏览器,而不需要通过负载均衡服务器,避免网卡带宽成为瓶颈,这种负载均衡方式又叫“直接路由(DR)方式”。

用户请求负载均衡服务器,通过算法计算出访问的mac地址为00:0c:29:d2 , 从而修改数据目的mac地址进行访问,返回时因为不需要修改返回IP故直接返回用户浏览器。

使用三角传输模式是大型网站较为广泛使用的一种负载均衡手段。

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值