网站设计提纲

高性能(响应时间,并发数,TPS)css

  1. 浏览器静态资源缓存
  2. CDN缓存
  3. 反向代理服务器缓存
  4. 应用服务器本地缓存
  5. 分布式缓存服务器(Redis)
  6. 缓存数据预热
  7. 减小http请求(合并js,css,图片)
  8. http静态资源gzip压缩
  9. 资源复用(线程池,链接池)
  10. 异步处理 (消息队列)
  11. 多线程(线程安全:无状态对象,局部对象,加锁)
  12. 分布式(分层,分割)
  13. 集群
  14. 单数据库调优(索引,sql优化)
  15. 数据库主从读写分离(复制延迟,写压力)
  16. 数据库垂直分割(跨库join查询,跨库 单表愈来愈大)
  17. 数据库水平分割(跨库join查询, 添加移除节点,自增id,全部查询须要sharding clue,备份麻烦)
  18. NoSQL数据库

高可用web

  1. 任何功能都要部署至少2台,防止单点(入口处的负载均衡服务器是单点,要用高端点的服务器)
  2. web应用服务器集群(经过入口负载均衡服务器进行自动failover,web应用服务器无状态话,sessoin由分布式缓存管理)
  3. 分布式服务集群(服务调用的客户端进行自动failover)
  4. 分布式缓存Redis主备复制(RedisCluster,RedisSentinel,Codis进行自动failover)
  5. 数据库主备复制(数据库代理服务器进行自动failover)
  6. 数据库数据冗余备份(NoSQL自带failover)
  7. 自动化发布(减小发布致使的宕机时间)
  8. 服务器分批部署重启(保证始终有一部分服务器在工做中)

可伸缩性算法

  1. web应用服务器集群
  2. 分布式服务集群
  3. 经过请求分发服务器路由,客户端从配置中心获取路由
  4. 经常使用路由算法:轮询,随机,最少链接
  5. 分布式缓存水平分割(一致性hash路由,presharding)
  6. 数据库水平分割(一致性hash路由,presharding)
  7. NoSQL数据库
相关文章
相关标签/搜索