① 架构层面的优化
1) 水平扩展、无状态化设计
2) 动静分离
② 机器及网络传输优化:
1) 增大机器配置、增大机器网络宽带
2) 压缩传输
3) TCP长连接快速回收、重复利用
③ 框架及代码层面:
1) 合并请求,减少序列化,减少请求数量;
2) 缓存技术:缓存粒度、有效期,缓存预热,二级缓存,本地缓存
3) 异步化调用:消息队列、日志异步
4) 线程池,NIO
5) 减少锁使用
6) 避免频繁创建销毁对象,线程池,数据库连接池,httpPool都是这个道理
④ 数据库层面:
1) 读写分离
2) 降低隔离性,事务隔离性
3) Sql优化,索引,表设计是否合理
4) 批处理,预处理
⑤ 中间件调优:
1) 集群化部署
2) 连接池,工作进程数,线程数
3) 其他各种参数配置调整
⑥ 搭建实时性能监控平台,逐步加压找性能瓶颈:
1) Jmeter
2) Pinpoint、zipkin、influxdb等
3) Jstat、jconsole、jmap、top、free -m、df -h
⑦ JVM调优(稳定性)
1) 堆内存初始化大小,最大
2) 使用G1垃圾回收器
閱讀更多 wendellFang 的文章