架构师接龙

一、保证网站的高可用性

1.避免单点故障。负载均衡集群、双节点热备、分布式处理。

    对于重要的MySQL数据库主库,我们习惯于从硬件层和软件层来实现热备,避免单点。越是复杂的设备,发生故障的概率越大。在磁盘没有损坏的情况下,应用程序导致服务器宕机的概率,远高于简单的磁盘阵列宕机的概率。所以,从硬件层解决的话,可以在两台服务器上安装相同的数据库版本、进行相同的配置,用SAS或SCSI线连接一台磁盘阵列,将数据库数据文件存放到盘阵上。正常情况下用服务器A挂载盘阵分区,启动MySQL,绑定虚拟IP;如果服务器A宕机,则用服务器B挂载盘阵分区,启动MySQL,接管虚拟IP。从软件层解决的话,则可以借助DRBD等软件做镜像。 

   IDC(Internet Data Center)机房发生故障的概率较小,但如果发生的话,影响面也是最大的。如果所有服务器都托管在一个IDC机房,一旦该机房遭遇长时间流量攻击、断电、断网、地方政策性封网等,通常只能联系IDC去处理,除此之外束手无策,解决时间也比较长。如果成本允许,将网站服务器分布在两个以上的IDC机房,当某个IDC发生故障时,可以临时切换DNS域名解析来优先恢复服务。

  

2.防止DDos等网络攻击。

    遭遇DDOS分布式拒绝服务攻击,使用防火墙来对付半连接、假IP,还算比较容易。而那种专挑复杂动态应用程序URL进行的分布式CC攻击,来源为真实IP、真实HTTP请求,具有模拟正规浏览器User-Agent、单个IP的每秒请求数不高、有成千上万个攻击源等特征,很难与正常访问区分开,比较难对付。但是,正常通过浏览器访问一个URL,会加载该URL中引入的JavaScript脚本、CSS样式、图片等文件。遇到CC攻击,需要及时分析日志,找出访问量异常上涨的URL,然后用事先写好的shell脚本找出哪些IP的请求只访问了该URL,而不加载该URL引入的文件,对这些IP进行自动封锁。

 

3.对于高访问量增加服务节点。

    系统架构设计时,需要事先考虑到高于目前访问量多少倍的突发访问。对于网游站点来说,访问量受广告集中时间段投放、线上活动的影响较大,带宽峰值时间不固定,对于静态内容,可以使用商业CDN,按实际使用量计费。对于动态内容,如果遇到突发访问人数剧增,超过现有服务器处理能力,最简单的临时处理办法就是增加服务器。上架新服务器需要时间,但是,同一个IDC机房内,可以借助其他业务的服务器,在不同端口开启一组新进程,加入到原有负载均衡池中。另外,可以临时关闭一些Web中的次要功能,来减少服务器消耗。

 

二、分层设计

   C/C++中间件引擎层,兼容TCP、UDP、HTTP、HTTPS/SSL、信号、命令行等大多数通讯方式。

 

三、保证产品质量

     Web产品质量主要体现在架构、功能、性能、安全、代码唯一性、兼容性等方面。

 

     在兼容性方面,我们从操作系统到PHP、MySQL版本,都保持开发环境、测试环境、线上环境的统一,所有的Web服务运行在CentOS Linux系统上。由于大多数PHP程序员习惯于在Windows上编写代码,而我们的程序中调用的一些接口、PHP扩展,只能在Linux下运行。为此,我们开发了一个小工具,可以将多名程序员在各自本机Windows上搭建的nginx虚拟主机、编写的程序文件,映射到一台Linux服务器,用Linux上的php-cgi执行Windows上的PHP代码。这样,PHP程序员修改完本机代码,保存一下,即可调试,多人之间互不影响。自己调试通过后,可以在Windows直接点击鼠标右键,将修改的代码提交到SVN版本库。

 

     Web 2.0时代,讲究网站更新的实时性,动态网站不用说,静态网站的内容发布也要保证实时。我们开发了一款名为Sersync的开源软件(http://code.google.com/p/sersync/),使用Linux 2.6内核的inotify监控Linux文件系统事件,被监听目录下如果有文件发生修改,Sersync将通过内核自动捕获到事件,并将该文件利用rsync同步到CDN源站服务器。Sersync仅仅同步发生增、删、改事件的单个文件或目录,不像rsync镜像同步那样需要比对双方服务器整个目录下数千万的文件,并且支持多线程同步,因此效率非常高。金山游戏官网的CMS内容发布系统,无论网站编辑通过Web还是FTP上传图片、视频、附件,还是系统工程师直接去CMS发布服务器上增加、修改、删除文件,干完这些事情后不用做任何处理,Sersync 会自动将发生增、删、改事件的文件同步到CDN源站服务器,并可以在文件同步完成后,自动调用CDN缓存刷新接口,主动刷新发生修改、删除的文件的访问URL。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值