大促系统优化之应用启动速度优化实践
💡
原文中文,约19200字,阅读约需46分钟。
📝
内容提要
本文探讨了SpringBoot应用启动速度慢的问题,并提出了优化方案,如关闭Tomcat的TLD文件扫描、异步预热Hbase配置和异步生成Jsf Consumer客户端代理。这些措施将应用启动时间从400-500秒缩短至130-150秒,提升超过60%。
🎯
关键要点
- SpringBoot应用启动速度慢的问题需要优化。
- 应用启动时间从400-500秒缩短至130-150秒,提升超过60%。
- 关闭Tomcat的TLD文件扫描可以加快启动速度。
- 应用启动时Hbase配置的异步预热可以减少阻塞。
- 使用自定义BeanPostProcessor监控bean的初始化耗时。
- @JsfConsumer注解导致的bean初始化变慢,需要优化refer方法的执行。
- 通过异步线程池优化JSF Consumer的代理生成,避免阻塞主流程。
- 不同Tomcat版本对应用启动速度有影响,需选择合适版本。
- 新旧机房的硬件性能差异影响应用启动速度。
- 总结优化措施,包括关闭TLD扫描、异步预热Hbase、异步生成Jsf Consumer客户端代理等。
❓
延伸问答
如何优化SpringBoot应用的启动速度?
可以通过关闭Tomcat的TLD文件扫描、异步预热Hbase配置和异步生成Jsf Consumer客户端代理等方式来优化启动速度。
关闭Tomcat的TLD文件扫描有什么好处?
关闭TLD文件扫描可以减少Tomcat启动时的阻塞,从而加快应用的启动速度。
异步预热Hbase配置是如何实现的?
通过实现SmartInitializingSingleton接口的afterSingletonsInstantiated方法,使用异步线程去预热Hbase配置,避免阻塞主流程。
Jsf Consumer客户端代理的异步生成有什么优势?
异步生成Jsf Consumer客户端代理可以避免在应用启动时阻塞主线程,从而提高整体启动速度。
不同Tomcat版本对应用启动速度的影响是什么?
不同版本的Tomcat在实例化对象时的性能差异可能导致应用启动速度的显著不同,较高版本可能会更慢。
硬件性能差异如何影响应用启动速度?
新旧机房的硬件性能差异会直接影响应用的启动速度,新的机器通常性能更好,启动速度更快。
🏷️
标签
➡️