网站从小到大的发展历程

来源:互联网 发布:知敬畏 守底线 强党性 编辑:程序博客网 时间:2024/04/29 17:33

任何一个网站的访问量都是从0增加到几亿甚至几百亿;这样随着流量的变化其对应使用的技术也会不断的变化:

(1). 刚开始只有一台服务器:应用系统  + DB 都这这台服务器上

(2). 随着流量增大,一台机器承受不住了,那就把应用系统单独放在一台服务器上,DB放在一台服务器上;

       应用拆分出现了session的问题;解决的方案:session sticky   session replication  基于cookie   session 独立集中存储(比较靠谱)

(3). 随着流量继续增大,把应用分成多台,走向应用集群,DB仍然是一台

(4). DB服务器撑不住了,而且发现读写比例很高,则进行Master/slave 进行读写分离,Master可以读写但slave可以读,这样就缓解了DB的压力

(5). 流量再增大,DB的读还是比较慢,这时就引入搜索引擎来提高DB 查询的性能

(6).流量继续增大,发现DB的读写比较大,这时磁盘IO的压力非常大;而单纯的更换硬件  SATA ------>SAS是不能解决问题了;此时就引入缓存cache----tair

(7).然后再进行数据的分布式存储,(现在还不清楚数据库集群和分布式数据库的区别????)

(8).如果你的网页静态数据比较多,而且更新不频繁,则引入CDN技术,可以提高用户访问的速度

(9).如果数据库还是不能撑住,则只能把数据库进行拆分:垂直拆分---按功能进行拆分,数据库分成  用户  商品  .....

(10). 数据库水平拆分:垂直拆分后因为访问量和数据量的原因,单台数据库服务器还是不能满足要求,则进行水平拆分;水平拆分的基本思想就是增加DB的机器比如  商品DB多家几台服务(商品DB集群),用户DB集群等;也存在另外一种水平拆分就是提高每台DB的性能

(11). 应用进行拆分:系统会越来越大,需要对应用进行拆分,安装功能把系统分成多个系统;

(12). SOA:服务化 


把整个应用系统拆分成很多模块,如图中三层服务,这样层层之间进行调用服务即可。

(13). 引入中间件:当系统拆分成多个模块时,要进行通信,这就要求使用中间件进行通信

原创粉丝点击