「这是我参与11月更文挑战的第9天,活动详情查看:2021最后一次更文挑战」
10. Java程序优化
• 养成良好的编程习惯
• 不要重复创建太多对象
• 流/文件/连接 一定要记得在finally块中关闭
• 少用重量级同步锁synchronized,采用Lock
• 不要在循环体中使用try/catch
• 多定义局部变量,少定义成员变量
11. 数据库优化
⑴ 数据库服务器优化
修改数据库服务器的配置文件的参数,偏DBA (数据库管理员)
⑵ 数据库架构优化
• 将数据库服务器和应用服务器分离
• 读写分离:通过数据库主从架构解决,写数据时操作主库,读数据时操作从库,分摊读写压力
• 分库分表:扩容数据库,解决数据量容量问题
⑶ 数据库索引优化
• 建立合适的索引
• 建立索引的字段尽量的小,最好是数值
• 尽量在唯一性高的字段上创建索引,主键、序号等
• 不要在性别这种唯一性很低的字段上创建索引
⑷ SQL优化
SQL优化很多,可以总结出很多经验;
参考文章:blog.csdn.net/jie_liang/a…
⑸ 采用数据搜索引擎
solr / elasticsearch
12. Ning优化
调整配置文件参数
worker_processes 16;
gzip on; #开启gzip压缩输出
events {
worker_connections 65535; #极限值65535
multi_accept on; #开启多路连接
use epoll; #使用epoll模型
}
- Linux优化
优化Linux内核参数
修改/etc/sysctl.conf
blog.51cto.com/yangrong/15… 偏运维的职责
14. 网络优化
机房、带宽、路由器等方面优化
网络架构更合理
运维的职责
15. 前端优化
⑴ js优化
• 压缩变小
• 压缩工具
• 多个js合并成一个js文件,直接手动拷贝到一个文件中去,页面只加载这一个文件或者利用程序,比如controller,/aa/js?path=xxx.js,xxx.js
⑵ css优化
• 压缩变小
• 多个css文件合并成一个css文件
⑶ html页面优化
• 不要加载太多js和css
• js和css加载放在页面的尾部,从用户体验角度考虑的
• 页面上减少到服务的请求数
16. 压测
• 压测就是压力测试
• 在系统上线前,需要对系统各个环节进行压力测试,发现系统的瓶颈点,然后对系统的瓶颈点,进行调优。调优完成后,还需要考虑另外一些风险因素,比如网络不稳定,机房故障等。所以我们需要提前有故障预备方案,比如多机房部署容灾、路由切换等。故障预备方案做好后,还需要提前进行演练,以确保预案的有效性
• 压力测试工具:Apache JMeter / LoadRunner等,偏测试的工作
• CTO、架构师,技术团队、测试团队、运维团队、DBA 等共同完成
总结
完成以上的工作,我们才能实现一个 高并发、高性能、高可用 的“三高”分布式系统。