2019独角兽企业重金招聘Python工程师标准>>>

第一步:物理分离 webserver 和数据库

将应用和数据库从物理上分离,变成了两台机器

第二步:增加页面缓存

例如 squid

第三步:增加页面片段缓存

例如 ESI 等

第四步:数据缓存

缓存技术,包括像 Map 数据结构、缓存算法、所选用的框架本身的实现机制等

第五步: 增加 webserver

1、如何让访问分配到这两台机器上,这个时候通常会考虑的方案是 Apache 自带的负载均衡

方案,或 LVS 这类的软件负载均衡方案;

2、如何保持状态信息的同步,例如用户 session 等,这个时候会考虑的方案有写入数据库、

写入存储、cookie 或同步 session 信息等机制等;

3、如何保持数据缓存信息的同步,例如之前缓存的用户数据等,这个时候通常会考虑的机

制有缓存同步或分布式缓存;

4、如何让上传文件这些类似的功能继续正常,这个时候通常会考虑的机制是使用共享文件

系统或存储等;

第六步:分库

这一步更多的是需要从业务上做合理的划分,以实现分库,具体技术细节上没有其他的要求

第七步:分表、DAL 和分布式缓存

分表更多的同样是业务上的划分,技术上涉及到的会有动态 hash 算法、consistent hash 算法

等;

DAL 涉及到比较多的复杂技术,例如数据库连接的管理(超时、异常)、数据库操作的控

制(超时、异常)、分库分表规则的封装等;

第八步:增加更多的 webserver

1、Apache 的软负载或 LVS 软负载等无法承担巨大的 web 访问量(请求连接数、网络流量等)

的调度了,这个时候如果经费允许的话,会取的方案是购 买硬件负载,例如 F5、Netsclar

、Athelon 之类的,如经费不允许的话,会取的方案是将应用从逻辑上做一定的分类,然

后分散到不同的软负载集群中;

2、原有的一些状态信息同步、文件共享等方案可能会出现瓶颈,需要进行改进,也许这个

时候会根据情况编写符合网站业务需求的分布式文件系统等;

在做完这些工作后,开始进入一个看似完美的无限伸缩的时代,当网站流量增加时,应对的

解决方案就是不断的添加 webserver。

第九步:数据读写分离和廉价存储方案

数据读写分离要求对数据库的复制、standby 等策略有深入的掌握和理解,同时会要求具备

自行实现的技术;

廉价存储方案要求对 OS 的文件存储有深入的掌握和理解,同时要求对采用的语言在文件这

块的实现有深入的掌握、

第十步:进入大型分布式应用时代和廉价服务器群梦想时代

1、拆成分布式后需要提供一个高性能、稳定的通信框架,并且需要支持多种不同的通信和

远程调用方式;

2、将一个庞大的应用拆分需要耗费很长的时间,需要进行业务的整理和系统依赖关系的控

制等;

3、如何运维(依赖管理、运行状况管理、错误追踪、调优、监控和报警等)好这个庞大的

分布式应用。

转载于:https://my.oschina.net/u/1457061/blog/655159

看的一个pdf说的。。大型网站架构演变相关推荐

  1. 大型网站架构演变和知识体系

    存爱好,作为收藏,原地址:http://www.blogjava.net/BlueDavy/archive/2008/09/03/226749.html ,同时向原创致敬 之前也有一些介绍大型网站架构 ...

  2. 大型网站架构演变和知识体系--转

    之前也有一些介绍大型网站架构演变的文章,例如LiveJournal的.ebay的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变的结果,而没有很详细的讲为什么需要做这样的演变,再加上近来感觉有不 ...

  3. 大型网站 linux,大型网站架构演变

    之前也有一些介绍大型网站架构演变的文章,例如LiveJournal的.ebay的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变的结果,而没有很详细的讲为什么需要做这样的演变,再加上近来感觉有不 ...

  4. [转载]大型网站架构演变和知识体系

    之前也有一些介绍大型网站架构演变的文章,例如LiveJournal的.ebay的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变的结果,而没有很详细的讲为什么需要做这样的演变,再加上近来感觉有不 ...

  5. 大型网站架构演变和知识体系(转)

    之前也有一些介绍大型网站架构演变的文章,例如LiveJournal的.ebay的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变的结果,而没有很详细的讲为什么需要做这样的演变,再加上近来感觉有不 ...

  6. 大型网站架构演变史(含技术栈与价值观)

    这篇文章是参考李智慧的<大型网站技术架构:核心原理与案例分析>和现蘑菇街CTO曽宪杰的<大型网站系统与Java中间件实践>写的一篇读书笔记. 前言 何谓大型网站?大型网站的特点 ...

  7. 大并发服务器架构 大型网站架构演变

    服务器的三条要求: 高性能:对于大量请求,及时快速的响应 高可用:7*24 不间断,出现故障自动转移,这叫fail over(故障转移) 伸缩性:使用跨机器的通信(TCP) 另外任何网络系统结构都可以 ...

  8. 中大型网站架构演变之路

    前言 网上有很多文章类似于我今天要分享的课程,有架构师写的,有运维写的,还有开发些的,偏重点都不同,今天我以咱们运维角度全面讲解. 一个成熟的网站架构并不是一开始设计就具备高可用.高伸缩.高性能等特性 ...

  9. 网站架构演变和知识体系

    之前也有一些介绍大型网站架构演变的文章,例如LiveJournal的.ebay的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变的结果,而没有很详细的讲为什么需要做这样的演变,再加上近来感觉有不 ...

最新文章

  1. 产品经理入门_所以您想成为产品经理? 这就是我的入门方式。
  2. Android studio 另一个程序正在使用此文件,进程无法访问
  3. php 多长时间前,php 多长时间之前 的函数
  4. esxi服务器能虚拟多少虚拟机,关于ESXI能虚拟出多少个虚拟机和CPU的关系
  5. 关键词热度分析工具_阿里国际站外贸独立站关键词的收集
  6. python——成语接龙小游戏
  7. 12-图像梯度-Scharr算子和laplacian算子
  8. *hdu5632Rikka with Array
  9. 微信又可以发520红包,还新增情人节“撒狗粮”状态:律师提醒注意
  10. js高程笔记1-3章
  11. Flutter中的JSON解析
  12. (三)【机器人路径规划】Astar算法
  13. Linux快捷键详解
  14. 自媒体行业现在还能赚钱吗?
  15. 使用fopen/fwrite/fread/fseek/fclose对文件从头读写整型数
  16. 任正非谈管理--读书笔记
  17. CarPlay iAP2附件协议
  18. CCNA(思科网络攻城狮) 滴水之力05
  19. 经典的搞笑反转段子,真是笑死人不偿命
  20. Linux中的0.0.0.0和 ::

热门文章

  1. QT_4_QpushButton的简单使用_对象树
  2. Tensorflow 梯度下降实例
  3. 系统中异常公共处理模块 in spring boot
  4. ibatis中resultClass与resultMap 的区别
  5. JAVA的面向对象编程--------课堂笔记
  6. 关于下拉菜单和iframe的问题
  7. 假如有一款机器可以采集人的脑电波用于写作多好!
  8. 关于[一个基于WF的业务流程平台]表设计的说明
  9. C++框架_之Qt的信号和槽的详解
  10. 测试—自定义消息处理