简单说说高可用网站CDN架构

其实如果做过运维,就知道搭建一个高可用网站并不是简单的写一个Web就完事了的,当用户增长到数万,如何维护网站的稳定性,如何用最少的机器提供尽可能高质量的服务的问题就会摆在面前。今天我介绍一下当初运维一个高性能多用户网站的架构。

当前的高性能网站,CDN首先要解决的是南北互通,也就是电信和联通互通的问题,因为电信的网络访问联通的会很慢,而联通的网络访问电信的也会很慢。。。。这算是一个具有中国特色的问题。解决方案也很简单,让电信的用户访问我们电信的服务器,让联通用户访问我们联通的服务器。

首先需要搭建一个DNS集群(当时我们用的软件名称很遗憾的忘记了),如果发现用户的IP是电信的,就将网站解析到电信的服务器IP上,如果发现用户的IP是联通的,就解析到联通的服务器IP上(可能还会有一个香港机房专门处理国外的IP )。



然后就是网站了,当然,对于无状态的Http协议,我们的网站一定要用到负载均衡,如果是打算买现成的硬负载均衡,可以考虑netscaler等,如果是软负载均衡,nginx, haproxy,Keepalived都是我们做过的选择。
用了负载均衡,请求可以落到任何一个服务器上,这就涉及到了一个Session存储的问题,让多台服务器共享一个Session集群,注意这里Session是可过期的。这里有redis, appfabric这样现成的解决方案为你搭建。
那么SLB挂了怎么办?
另外一个最常用的技术,“热备”登场了,热备和SLB不同,SLB下面所有的Web都同时起作用,如果某台Web挂了,SBL检测到这台Web没有心跳了,就会把请求转发到其他Web上,直到这台Web恢复正常。热备则是2台机器,只有一台起作用,一台挂了,备用的顶上去。所以我们又有下面这个图:



这里,针对SLB服务,简单介绍一下KeepAlived,KeepAlived软件用的技术是“IP漂移”,假设服务器1的真实IP是 111.111.111.1, 服务器2的真实IP是 111.111.111.2,我们可以让客户端访问IP    111.111.111.3  假设服务器1为主, 服务器2为备。当服务器1没有问题的时候,.3这个IP被服务器1拥有,当服务器1挂了的时候,.3这个IP被服务器2拥有。这样, .3这个Ip的机器总是可用的。
那么怎么知道.1挂了呢?一种简单的策略是通过心跳, .1和.2之间有心跳, 如果.2检测不到.1的心跳,则.2会申请占有.3的IP。 但是.2检测不到.1的心跳,也可能是因为网络问题,是.2的网络不通。这个时候,主服务器.1也会申请.3的IP,由于.1是主服务器,最终.1将获得虚拟IP。如果是真的.1挂了,只有.2申请.3的IP,那么.2将获得虚拟IP。整个过程是通过 VPPR协议完成的。

现在 ,我们已经简单介绍了高可用网站的架构。回过头来看看第一个问题,我们要把WebApp分别部署在3个机房,如果真的这么做,我们每个机房要部署多少台机器?哪个线路的访问量大?我们是否要为了应付一个瞬时的大访问量,而在某个机房部署大量机器,然后在大部分时间里这些机器都处于空闲状态?

为了解决上述问题,标准的做法时,我们选择一个机房为核心机房,部署WebApp,而在其他机房仅仅部署缓存服务器。这些缓存服务器不仅可以缓存静态页面,也可以一定程度的抵御DDOS攻击。缓存软件有Squid等可以选择。Squid本身又会构成一个集群,它们首先挂在负载均衡下,保证高可用性,然后通过配置兄弟节点的方式,组成一个集群,一个缓存中没有内容的话,就去兄弟节点去取,都取不到再去WebApp读取,这样,我们即在很大程度上解决了多线互通问题,又不用部署太多的机器到每个机房。一个简单的结构如下图:

                     





                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    

                                                  

                    
                                                                                                                                                                                                                                                                                                                                         
             

                                    
                                                                                                                                                                                                              

                                                                                                                                 
                                                                                                                                                          


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26899445/viewspace-1376431/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26899445/viewspace-1376431/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值