高可用架构 技术随笔

大型网站技术架构笔记:演化历程、架构模式与核心要素

大型网站的技术架构并非一蹴而就,而是随着业务规模逐步演化出来的。本文整理自主流架构实践,从演化历程、架构模式、核心要素三个层面做笔记。

一、架构演化历程

  1. 初始阶段:应用、数据库、文件都在一台服务器(LAMP)。
  2. 应用与数据分离:应用服务器(强 CPU)、数据库服务器(强内存/磁盘)、文件服务器各司其职。
  3. 引入缓存:遵循二八定律,把高频访问的 20% 数据放入缓存(本地缓存 / 分布式缓存)。
  4. 应用服务器集群:通过负载均衡横向扩展,提升并发能力。
  5. 数据库读写分离:主库写、从库读,缓解数据库压力。
  6. 反向代理与 CDN:CDN 把静态资源放到离用户最近的机房;反向代理缓存动态页面。
  7. 分布式文件系统 / 分布式数据库:单机能存不下时做分库分表、引入 NoSQL。
  8. 业务拆分与分布式服务:按业务拆应用,把用户、商品等公共能力抽成独立服务复用。

二、常用架构模式

  • 分层:表现层 / 业务层(Service)/ 数据层(DAO)边界清晰,便于协作与部署。
  • 分割:业务垂直拆分,模块低耦合、独立部署。
  • 分布式:分层与分割的目的就是便于分布式部署(应用、静态资源、数据、计算)。
  • 集群:单模块多机部署,配合负载均衡提供扩展性与高可用。
  • 缓存:CDN、反向代理、本地缓存、分布式缓存,前提是被频繁访问且一段时间内有效。
  • 异步:用消息队列解耦,削峰填谷、加快响应。
  • 冗余:服务器集群 + 数据库冷热备份,保障 7×24 可用。
  • 自动化与安全:自动化发布/监控/降级;身份校验、加密、验证码、防注入。

三、五大核心架构要素

要素含义常用手段
性能用户访问快慢浏览器缓存/CDN、缓存、异步、集群、索引与 SQL 优化
可用性可访问时间占比冗余集群、灰度发布、自动化测试
伸缩性加机器提升能力无状态应用 + 负载均衡、一致性哈希缓存路由
扩展性快速响应需求变化事件驱动(消息队列)、分布式服务
安全性应对攻击HTTPS、加密、防 XSS/SQL 注入、风控
标签
架构高并发