第一步:物理分离WebServer和数据库
第二步:增加页面缓存
squid
第三步:增加页面片段缓存
ESI之类的页面片段缓存策略
第四步:数据缓存
缓存技术,包括像Map数据结构、缓存算法、所选用的框架本身的实现机制等
第五步: 增加WebServer
增加一台webserver时,会碰到一些问题,典型的有:
1、如何让访问分配到这两台机器上,这个时候通常会考虑的方案是Apache自带的负载均衡方案,或LVS这类的软件负载均衡方案;
2、如何保持状态信息的同步,例如用户session等,这个时候会考虑的方案有写入数据库、写入存储、cookie或同步session信息等机制等;
3、如何保持数据缓存信息的同步,例如之前缓存的用户数据等,这个时候通常会考虑的机制有缓存同步或分布式缓存;
4、如何让上传文件这些类似的功能继续正常,这个时候通常会考虑的机制是使用共享文件系统或存储等;
这一步涉及到了这些知识体系:
负载均衡技术(包括但不限于硬件负载均衡、软件负载均衡、负载算法、linux转发协议、所选用的技术的实现细节等)、主备技术(包括但不限于ARP欺骗、linuxheart-beat等)、状态信息或缓存同步技术(包括但不限于Cookie技术、UDP协议、状态信息广播、所选用的缓存同步技术的实现细节等)、共享文件技术(包括但不限于NFS等)、存储技术(包括但不限于存储设备等)。
第六步:分库
数据库集群和分库策略
第七步:分表、DAL和分布式缓存
分表更多的同样是业务上的划分,技术上涉及到的会有动态hash算法、consistenthash算法等;
DAL涉及到比较多的复杂技术,例如数据库连接的管理(超时、异常)、数据库操作的控制(超时、异常)、分库分表规则的封装等;
第八步:增加更多的WebServer
在这个添加webserver服务器的过程,有可能会出现几种挑战:
1、Apache的软负载或LVS软负载等无法承担巨大的web访问量(请求连接数、网络流量等)的调度了,这个时候如果经费允许的话,会采取的方案是购买硬件负载平衡设备,例如F5、Netsclar、Athelon之类的,如经费不允许的话,会采取的方案是将应用从逻辑上做一定的分类,然后分散到不同的软负载集群中;
2、原有的一些状态信息同步、文件共享等方案可能会出现瓶颈,需要进行改进,也许这个时候会根据情况编写符合网站业务需求的分布式文件系统等;
在做完这些工作后,开始进入一个看似完美的无限伸缩的时代,当网站流量增加时,应对的解决方案就是不断的添加webserver。
第九步:数据读写分离和廉价存储方案
数据读写分离要求对数据库的复制、standby等策略有深入的掌握和理解,同时会要求具备自行实现的技术;
廉价存储方案要求对OS的文件存储有深入的掌握和理解,同时要求对采用的语言在文件这块的实现有深入的掌握。
第十步:进入大型分布式应用时代和廉价服务器群梦想时代
通常,这个步骤需要耗费相当长的时间,因为会碰到很多的挑战:
1、拆成分布式后需要提供一个高性能、稳定的通信框架,并且需要支持多种不同的通信和远程调用方式;
2、将一个庞大的应用拆分需要耗费很长的时间,需要进行业务的整理和系统依赖关系的控制等;
3、如何运维(依赖管理、运行状况管理、错误追踪、调优、监控和报警等)好这个庞大的分布式应用。
相关推荐
Linux系统管理Step By Step:账户管理.pdf
OSGEarth的入门教程,经典教程,介绍OSGEarth的架构和使用方法
NULL 博文链接:https://lottons88.iteye.com/blog/2365901
教你如何安装MSTR,MicroStrategy 8 由MicroStrategy 7 架构发展而来。它继承已成为MicroStrategy 技术标志的企业级强度特性—包括最高的用户扩展性、最高的数据扩展性,以即插即用组件方式支持5 种 商务智能应用,...
–This section will show you can start with a very simple BI landscape as part of your overall system landscape and what the benefits are and how you can grow your BI landscape incrementally by making...
在第二部分的第3章~第7章中,都是以例子来介绍HTTP模块的开发方式的,这里有些接近于“step by step”的学习方式,我在写作这一部分时,会通过循序渐进的方式使读者能够快速上手,同时会穿插着介绍其常见用法的...
这是 struts架构的指导。它包括一些step by step的小应用程序,可以让你短时间内用struts工作。
原书名: Microsoft Visual C# 2010 Step by Step 原出版社: Microsoft Press 作者: (英)John Sharp 译者: 周靖 丛书名: 微软技术丛书 出版社:清华大学出版社 ISBN:9787302234289 上架时间:2010-9-6 ...
它包括一些step by step的小应用程序,可以让你短时间内用struts工作。 内容: 01.介绍 02.Struts的安装 03.第一个实验:简单的JSP页 04.第二个实验:struts的国际化 05.struts中的Forms 06.struts:介绍...
这是 struts架构的指导。它包括一些step by step的小应用程序,可以让你短时间内用struts工作。
角度一步一步一步一步学习AngularJS第 1 章基本 AngularJS 包括: 控制器核心 API angularJS 模块DI第2章指示$http 承诺筛选证实第3章使用 RESTful API 使用 grunt、bower 构建网站====================== 安装凉亭...
A Step-by-Step Guide for Establishing the PMO
本课程提供一个简洁易懂step by step的指导,讲解如何将WebDriver与TestNG、Maven、Log4j2、Extent Report、Jenkins等进行集成,最终完成一个企业级完整、健壮、高效易维护自动化测试架构的构建。
《VMware vSphere企业运维实战》介绍了大量先进的虚拟化应用技术,步骤清晰(使用Step By Step的教学方法),非常容易学习和快速掌握,可供虚拟机技术爱好者、政府信息中心管理员、企业和网站的网络管理员、计算机...
Struts精要指南Word格式版,这是 struts架构的指导。它包括一些step by step的小应用程序,可以让你短时间内用struts工作。
大医加中医临床智能助手 Step.6 step.5 Step.4 Step.3 Step.2 Step.1 知患 患者画像 知病 四诊信息 知医 医生画像 知道 中医AI 知天地 环境画像 中医智能 辩证论治 基于大数据的中医智能辅助系统全文共20页,当前为...
工作原理(简短概述) 使用 structr 生成架构创建本地类查询和使用您的数据##Step-by-Step 注意:这些步骤不显示如何使用结构体或如何创建架构。 此示例基于 Android。 ###使用 Structr 生成数据模式首先使用 struct...
JBPM 4.4用户手册.chm ...jbpm4.4安装配置step by step.doc jbpm4自带数据库分析.doc jBPM_4教程PPT.pdf JBPM与SSH架构融合.doc 工作流模型分析_v1.1.pdf 揭秘jbpm流程引擎内核设计思想及构架.doc