高性能高负载(N高)具体含义:

  1. 请求处理:高并发-时间响应快,实时;高并行-IO吞吐量大,延迟
  2. 数据CAP: 高一致,高可用,高伸缩

解决方案:

1, 代码与SQL优化

2, 代码压缩(节约带宽流量)

3, 设计:

3.1高内聚(职责单一)低耦合(复用)

3.2门面模式粗粒度接口(减少频繁通信交互带来延迟响应及CPU性能消耗(如正逆向序列化,安全认证,组合与解析))

3.3应用拆分(化繁为简,各个击破,分而治之)

3.4微内核架构,扁平化设计,热插播技术(伸缩性)

4, 最前端请求代理(squid)

5, 内容分发CDN

6, 固定资源静态化(页面整体框架,静态html页面,样式,脚本,图片,视频,音频等文件)

7, 静态资源与应用逻辑分离(页面整体框架,静态html页面,样式,脚本,图片,视频,音频等文件)

8, 资源本地化(html,脚本,图片,样式等 保存在客户端,减少多次资源传输,节省带宽)

9, 客户端按需索取数据(ajax)

9.1发布&订阅

9.2服务器数据主动推送

9.3轮询

9.4推拉模式(客户端拉服务器推)

10, 服务端队列机制

11, 服务端线程安全(ThreadLocal)

12, 服务端方法参数传递数据方式(map)

13, 减少不必要的运算与全局变量

14, 长事务短时提交

15, 分布式事务处理采用集中监控及任务调度

16, 多线程与线程池技术 ThreadLocal 回调接口通讯

17, 数据库连接池技术

18, 多级缓存(页面、应用、数据库、分布式缓存)

19, 集群技术(Web集群、缓存集群、应用集群、数据库集群、分布式资源集群)

20, 数据库主从(读写)分离(一主多从,多主多从)

21, 同步锁(代码级别 数据库级别)

22, 索引(文件索引、数据库表字段查询条件及分组条件索引及排序索引)、聚族索引、聚族列(字段扩展)、保留字段

23, 维度视图,存储过程(避免直接操作表,事务控制)

24, 非关系型数据库(海量数据,非关系型数据,分布式存储)

25, 容灾备份(两地三中心,同城弱连接备份[增量],异地冷备份[全量])

26, Web负载均衡(apachehttp,nginx) 应对高并发

27, 分流(按地域路由访问)

28, Web主机多机热备(防止单点故障)

29, 底层通信RPC(减少高层协议开销)

30, 数据库表拆分(纵向业务功能模块,横向数据策略(映射索引策略))

31, 表空间分区(提高IO吞吐力)