网站设计提纲

随声附和 提交于 2019-11-29 08:40:05

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

  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数据库

高可用

  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数据库
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!