大型网站架构分析

来源:互联网 发布:java 调用方法 编辑:程序博客网 时间:2024/04/29 01:09

大型网站架构的成熟并不是一蹴而就的,是从最简单的架构做起,然后根据用户的需求,业务的扩张,一步一步进行改进从而实现的。大体发展轨迹整理如下:
参见

  1. 物理分离WebServer和数据库

    数据库和应用之间互相影响,将其分为2台机器,从而提高响应速度,支持更高的流量。

  2. 增加页面缓存

    squid缓存框架,减少数据库连接资源的竞争。

  3. 增加页面片段缓存

    采用类似ESI之类的页面片段缓存策略,OK,于是开始采用ESI来做动态页面中相对静态的片段部分的缓存。

  4. 数据缓存

    重复获取的数据信息的地方进行改进,比如获取用户信息。

    缓存技术:Map数据结构、缓存算法、缓存框架本身的实现机制。

  5. 增加WebServer
    解决可用性,缓解服务器压力。
    负载均衡(LVS)、状态同步、缓存同步(分布式缓存)、共享文件技术

  6. 分库

    数据库写入、更新部分操作带来的资源竞争非常激烈,导致系统变慢。
    使用数据库集群和分库策略。业务上做合理的划分。

  7. 分表、DAL和分布式缓存
    动态hash算法、consistenthash算法
    DAL涉及到比较多的复杂技术,例如数据库连接的管理(超时、异常)、数据库操作的控制(超时、异常)、分库分表规则的封装等

  8. 增加更多的WebServer

  9. 数据读写分离和廉价存储方案

  10. 进入大型分布式应用时代和廉价服务器群梦想时代

    要求对通信、远程调用、消息机制等有深入的理解和掌握,要求的都是从理论、硬件级、操作系统级以及所采用的语言的实现都有清楚的理解。
    最终的架构图:
    大型网站架构图

0 0