文章目录
  1. 1. 一、书籍信息
  2. 2. 二、大型网站软件系统特点:
  3. 3. 三、网站架构渐进式发展

一、书籍信息

《大型网站技术架构核心原理与案例分析》

二、大型网站软件系统特点:

  • 高并发,大流量
  • 高可用
  • 海量数据
  • 用户分布广泛,网络情况复杂
  • 安全环境恶劣
  • 需求快速变更,发布频繁

三、网站架构渐进式发展

  • 网站架构演进:

    • 初始网站架构(应用程序、文件、数据库在同一服务器上,如租用的阿里云服务器)
    • 应用服务器(CPU)、数据库服务器(内存)、文件服务器分离(硬盘)
    • 使用缓存减少数据库访问压力
    • 使用负载均衡调度和集群减少应用服务器压力
    • 数据库读写分离
    • CDN和反向代理
    • 分布式文件系统和分布式数据库
    • noSQL和搜索引擎
    • 业务拆分
  • 网站架构模式:

    • 分层:应用层、服务层、数据层
    • 分割:高内聚低耦合
    • 分布式:必须调用网络、宕机概率大、数据一致性保持
    • 集群:多台服务器部署相同应用
    • 缓存:CDN/反向代理/本地缓存/分布式缓存(数据访问热点不均衡、数据不会很快过期)
    • 异步:消息队列(可以缓解高峰)
    • 冗余:数据备份
    • 安全:密码、验证码、访问控制等
  • 大型网站核心架构要素:

    • 性能:响应时间、TPS等要素
    • 可用性:99.99%
    • 伸缩性:体现在集群中服务器的添加
    • 扩展性:事件驱动架构(消息队列)和分布式服务
    • 安全性
  • Web前端性能优化:

    • 浏览器访问优化:
    • 减少HTTP请求(将js、css等文件合并)
    • 使用浏览器缓存
    • 启用压缩(如Gzip)
    • CSS放在页面最上面、JS放在最下面(下载完全部CSS再进行渲染)
    • 减少Cookie传输
    • CDN加速:本质仍然是缓存,缓存静态资源
    • 反向代理:位于机房、代理Web服务器接收HTTP请求,可以实现负载均衡和缓存功能
  • 应用服务器性能优化:

    • 分布式缓存
    • 考虑数据是否频繁修改、是否非热点、是否容忍数据不一致和脏读、缓存可用性如何
    • 缓存预热:加载一些重要的元信息
    • 缓存穿透:将不存在的数据缓存起来
    • 分布式缓存架构(需要更新同步的JBoss和不互相通信的Memcached)Memcached优点很多
  • 代码优化:

    • 多线程
    • 资源复用:单例模式和对象池(数据库连接池、线程池)
    • 数据结构
    • 垃圾回收
  • 存储性能优化:

    • 使用SSD
    • B+树还是LSM树
    • RAID和HDFS(默认同一个数据有三个副本)
文章目录
  1. 1. 一、书籍信息
  2. 2. 二、大型网站软件系统特点:
  3. 3. 三、网站架构渐进式发展