大型网站技术架构Tips

来源:互联网 发布:seo标题 编辑:程序博客网 时间:2024/05/01 16:25

大型网站架构整理

一、整体架构

1.总体

graph TD; CDN服务器-->反向代理服务器; 反向代理服务器-->负载均衡服务器; 负载均衡服务器-->应用程序; 应用程序-->文件; 应用程序-->数据库; 应用程序-->分布式缓存
graph TD; 数据库-->分布式数据库; 分布式数据库-->主数据库!写; 分布式数据库-->从数据库!读;

2.架构要素

  • 性能
    • 响应时间
    • 并发数
    • 吞吐量
  • 可用行
  • 伸缩性
  • 扩展性
  • 安全性

二、架构优化

1.性能优化

1.1 web前端优化

  • 减少http请求
    • 合并css
    • 合并js
    • 合并图片采用css偏移响应鼠标操作
  • 使用浏览器缓存
  • 启用Gzip压缩,但会对服务器和浏览器解析造成压力
  • css放最上面,不用立即加载的js放最下面
  • 减少cookie
  • CDN加速+反向代理

1.2 应用服务器优化

  • 分布式缓存
    • 缓存预热
    • Memcached
    • 消息队列中间件
    • 使用集群
  • 代码优化
    • 多线程
      • 将对象设计成无状态对象
      • 使用局部对象
      • 并发访问资源时使用锁
    • 资源复用
      • 单例模式
      • 对象池(特别是数据库链接)
    • 数据结构
      • Time33算法
        hash(i) = hash(i-1) * 33 + str[i]
      • 先MD5算法之后再采用Time33算法
    • 垃圾回收
      • 调整垃圾回收的临界

1.3 存储性能优化

  • 固态硬盘
  • B+树
  • LSM树
  • RAID(廉价磁盘数据冗余阵列)
  • HDFS(hadoop文件系)
0 0