【 前一段时间写了关于架构的总结,一共十篇,放在新浪博客上 :http://blog.sina.com.cn/zgwangbo001 ,今天放到csdn上】

也可以关注微信公众号:simplemain

        【第八阶段 : WebServer多机化】

 

上面说了这么多,我们的业务都基本上运转在只有一个WebServer的条件下。如果出现宕机,所有服务就停掉了;如果压力大了,单机不能承载了,怎么办?

说到这个话题,我们需要来回顾一下在大学时学习的关于网络的基本知识。^_^

抛开复杂的网络,我们简化我们的模型。我们的电脑通过光纤直接连入互联网。当我们在浏览器地址栏里面输入http://www.XXX.com时,到我们的浏览器展现出页面为止,中间出现了怎么样的数据变化?(注意:为了不那么麻烦,我简化了很多东西,比如:NAT、CDN、数据包切片、TCP超时重传等等)

上面的图我们应该比较熟悉,同时也应该比较清晰的表达了我们简化后,从输入网址到页面展现的一个过程。中间有两个东西我们比较关注,也是解决我们WebServer多机化的关键。

1、DNS服务是否能帮我们解决多机化?

2、www.XXX.com服务器的WebServer如何多机化?

首先,如果DNS解析能够根据我们的请求来区分,对于同一域名,将不同的用户请求,绑定到不同的ip上,这样,我们就(友情提示:word统计此处已经达到10000字)能部署多个WebServer,对应不同的ip,剩下的无非就是多申请几个ip地址而已。

当我们网站比较小的时候,我们都是在代理商处购买域名并由代理商的服务域名解析服务器帮我们做域名解析。但是,对于许多大型的网站,都需要对类似于www.XXX.com、blog.XXX.com、img.XXX.com等在XXX.com根下的所有服务的进行域名解析,这样便于对服务进行控制和管理。而域名的解析往往有专门的策略来处理,比如根据IP地域、根据不同请求IP的运营商等返回不同的服务器IP地址。(大家可能以前也有过这样的经验:在不同的地方,ping几个大的网站,看到的ip是不一样的)。

DNS策略分析和处理服务是对请求IP进行分析和判断的系统,判断请求来自哪个地域、哪个运营商,然后根据内部的一些库的判断,决定应该返回哪个WebServer的IP。这样,就能尽量保证用户以最快的速度访问到对应的服务。

但是,如果我们有大量的WebServer,那每个Server都要有一个IP,另外,我们要增加一个新机器,又要申请一个IP地址,好像很麻烦,且不可接受。怎么办呢?

第二点,我们需要考虑对于服务器的WebServer的多机化方式。

我们为什么要WebServer多机化?原因就是因为单机的处理性能不行了,我们要提升处理能力。

那WebServer要做哪些事情?Hold住大量用户请求连接;根据URL将请求分流到不同逻辑处理的服务器上;有可能还有一些防攻击策略等。其实这些都是消耗CPU的。

如果我们在WebServer前端增加一层,什么逻辑都不处理,就是利用一定的负载均衡策略将数据包转发给WebServer(比如:工作在IP层,而非TCP层)。那这一层的处理能力跟WebServer比是否是要强悍很多?!这样的话,这一层后面就可以挂载很多的WebServer,而无需增加外网IP。我们暂且叫这一层叫VS(Virtual Server)。这一层服务要求稳定性较高,且处理逻辑要极为简单,同时最好工作在网络模型中较低的层次上。

这样的话,我们就只需要几个这样的VS服务器组,就可以组建大量的WebServer集群。当一个群组出现问题,直接可以通过改变IP绑定,就可以切换到其他服务器组上。

现在这样的VS实现有多种。有靠硬件方式实现的,也有靠软件方式实现的。硬件方式实现的话,成本较高,但稳定性和效率较好。软件方式实现的,则成本较低,但稳定性和效率较硬件方式要低一些。

现在用的比较多的有开源的LVS(Linux Virtual Server),是由我国的一个博士写的,NB!以及根据LVS改写后的一些变种。

另外还有F5Networks公司出的收费的F5-BIG-IP-GTM等。(注:这个确实没用过,以前在网上看过,写到此处记不清,在百度上搜的。如有错误,敬请雅正)。

好了,通过上述的方式,我们基本实现了WebServer的多机化。

(这里虽然只有短短的1千多字,但是这个问题实际困扰过我很长的时间。因为不像搭建简单的web服务那么简单,我很难实际的配置和操作DNS Server。所以这个问题的解答,其实花了我较多时间去查资料和思考。到目前为止,还没有实际操作过,完全是空想。希望不会误导大家。哈哈)

蚂蚁变大象:浅谈常规网站是如何从小变大的(四)相关推荐

  1. 蚂蚁变大象:浅谈常规网站是如何从小变大的

    言归正传,计划了很久写这篇文章,不过心里还是比较忐忑,担心自己在技术上的深度和沉淀还是不够.不过,最后想起某老师说的:follow my heart! 想想,人生就这么些年,想做啥就做啥吧,不用想的太 ...

  2. 蚂蚁变大象:浅谈常规网站是如何从小变大的(转)

    2005年,我开始和朋友们开始拉活儿做网站,当时第一个网站是在linux上用jsp搭建的,到后来逐步的引入了多种框架,如webwork.hibernate等.在到后来,进入公司,开始用c/c++,做分 ...

  3. [转]蚂蚁变大象:浅谈常规网站是如何从小变大的

    作者:老王 (http://blog.sina.com.cn/zgwangbo001) 来源:http://stblog.baidu-tech.com/?p=1643 2005年,我开始和朋友们开始拉 ...

  4. (转)蚂蚁变大象:浅谈常规网站是如何从小变大的

    2005年,我开始和朋友们开始拉活儿做网站,当时第一个网站是在linux上用jsp搭建的,到后来逐步的引入了多种框架,如webwork.hibernate等.在到后来,进入公司,开始用c/c++,做分 ...

  5. PHP相关系列 - 蚂蚁变大象:浅谈常规网站是如何从小变大的

    来源:http://stblog.baidu-tech.com/?p=1643 2005年,我开始和朋友们开始拉活儿做网站,当时第一个网站是在linux上用jsp搭建的,到后来逐步的引入了多种框架,如 ...

  6. 蚂蚁变大象:浅谈常规网站是如何从小变大的(三)

    [ 前一段时间写了关于架构的总结,一共十篇,放在新浪博客上 :http://blog.sina.com.cn/zgwangbo001 ,今天放到csdn上] 也可以关注微信公众号:simplemain ...

  7. 蚂蚁变大象:浅谈常规网站是如何从小变大的(二)

    [ 前一段时间写了关于架构的总结,一共十篇,放在新浪博客上 :http://blog.sina.com.cn/zgwangbo001 ,今天放到csdn上] 也可以关注微信公众号:simplemain ...

  8. 蚂蚁变大象:浅谈常规网站是如何从小变大的(五)

    [ 前一段时间写了关于架构的总结,一共十篇,放在新浪博客上 :http://blog.sina.com.cn/zgwangbo001 ,今天放到csdn上] 也可以关注微信公众号:simplemain ...

  9. 浅谈大型网站之负载均衡架构

    转载自 浅谈大型网站之负载均衡架构 概念 负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器.FTP服务器.企业关键应用服务器和其它关键任务服务器等 ...

最新文章

  1. fopen和fopen_s用法的比较
  2. 向人类再进一步|MIT×UMich探索可以理解物体空间关系的人工智能
  3. 有关cvUpdateMotionHishtory,cvCalcMotionGradient等函数的使用
  4. 全球及中国低温纳米定位器行业发展趋势分析与风险评估报告2021-2027年版
  5. python celery异步_python项目_使用异步功能,celery
  6. 管理员密码的php文件,ecshop网站后台管理员密码找回办法
  7. 计算机四级考试题数据库,计算机四级考试《数据库系统工程师》试题及答案
  8. poj 3621 Sightseeing Cows 01分数规划
  9. lsof -Pni4 | grep LISTEN | grep php
  10. 关于 API 定义 安全
  11. OCI runtime create failed: container_linux.go:370: starting container process caused: process_linux.
  12. [Windows小工具]两款屏幕取色拾色器(免安装,1MB左右大小)
  13. shell脚本操作hbase的命令
  14. 小米手机测试代码电池测试代码
  15. ATmega16 单片机 AVR单片机 直流电机调速器
  16. 傅立叶变换描述子 matlab,[傅里叶变换matlab]傅里叶变换的Matlab代码与注释
  17. linux下nginx重启命令
  18. wpsppt放映时间_wps演示怎么调整放映速度?
  19. win10计算机共享在哪,快速共享电脑文件,win10的“就近共享”功能了解一下!...
  20. android实时投屏软件下载,安卓投屏助手

热门文章

  1. STM32F103C8T6 LD3320语音识别模块非特定识别人声 离线控制 智能家居 开发板
  2. python画图,点赞
  3. Unity3d地形反光
  4. 灵光一闪!帮你使用Vue,搞定无法解决的“动态挂载”
  5. linux无线网卡monitor模式,ubuntu下开启无线网卡的monitor mode
  6. bim综合软件如何操作局部三维?
  7. 关于input标签的不可编辑
  8. camera焦距计算方法
  9. 聚焦行业,赋能客户 | 博云容器云产品族五大行业解决方案发布
  10. 百思不得姐框架(一)