服务高性能
服务的性能优化,永远离不开以下几个点:
- 空间换时间
- 同步换异步
- 数据结构和算法
- 并发
- 池化
- 优化IO
架构角度看性能优化
在机器资源固定的前提下,可分为:
- 视图层优化 (VO):前端优化、客户端优化、
- 传输层优化 (DTO):网络优化
- 应用层优化 (POJO):代码层优化
- 存储层优化 (DAO / DO):数据库优化
【视图层优化】(空间换时间 + 异步 + 优化网络IO)
- 客户端优化缓存,静态资源缓存
- CDN加速
- 减少Cookies传输
- 合并请求
- 代理
- 请求异步
【传输层】优化网络IO
- 压缩
- 合适的序列化算法
- 合适的传输协议(HTTP or TCP)
- 请求数据的合并和拆分
【应用层优化】
- 缓存
- 异步
- 并发框架
- 池化
- 数据结构和算法
- JVM调优
- 零拷贝
- 减少false sharing
【存储层优化】
- 缓存
- 减少文件IO
- 索引
- 磁盘冗余、分布式存储(HDFS)、NoSQL 等。
- 合适的存储引擎
- 索引