- 高性能Java架构:核心原理与案例实战
- 张方兴编著
- 681字
- 2021-10-15 18:26:08
1.12 总结——业务、性能、编程、架构相辅相成
业务、性能、编程、架构四者相辅相成,从不是单独存在的。应用程序的架构与编码是为业务服务的,但这并不代表编码与架构方面需要无条件满足业务,当某些业务的实现逻辑只改变很少的一个点,但却能承载更多的并发时,业务就需要给性能做出一定的让步。
无论黑盒测试还是白盒测试,都需要由负责编码的人员进行辅助,否则得出的结论可能是没有任何意义的。在测试之前要明确本次测试的原因。例如,此次测试是为了验证当前应用程序的最大并发是多少,或是为了优化程序CPU和内存的使用量,或是为了了解应用程序在某用户量进行操作时对数据库的压力是多少,或是为了了解应用程序是否包含内存溢出,是否会出现宕机,或是为了了解Linux内核参数、MySQL配置参数、Nginx配置参数等内容是否需要进行更改等。性能测试给予应用程序的压力,绝不是以给应用程序“压迫致死”作为目标,而是为了测试出期望的结果,达到更了解当前程序或优化当前程序的目的。
当性能测试得出结论时,既可能需要对架构进行优化,也可能对代码进行优化,在实践中,需要根据人力、服务器成本等采取不同的方案。
第13章中列举了一些常见的架构,由于篇幅有限,知识点众多,所以没有为每种架构的每个技术都以步骤的形式进行体现。总体来说,Java程序的性能优化可分为横向优化与纵向优化两种:
横向优化即通过负载均衡等,增加服务器来提升整体服务的并发性能。另外,在优化性能时要不断对当前服务器的响应情况进行测试与监控。
纵向优化即通过优化算法,或者通过FastDFS和Redis等中间件纵向增加缓存层,或通过优化SQL语句、更换协议等方式减少CPU与内存的开销,提升单台Java应用程序的并发性能。