启动速度提升 10 倍:Apache Dubbo 静态化方案深入解析
出处:
mp.weixin.qq.com
作者:
华钟明
云计算时代比较显著的特点包括: 基于云计算的基础设施,我们的应用能够在云上快速、轻松且高效地做到弹性。尤其是无状态的应用,能够轻易地基于同一个镜像构建实例,当然也能轻易地收缩多余的实例,实现弹性伸缩容。 基于容器化技术,系统资源被切分的更细,资源的利用也变得更优。 基于云计算的开发平台,应用部署更加容易,应用开发更加敏捷。 那么在云计算时代,Java 应用存在哪些问题呢? 冷启动速度较慢。Java 应用启动需要经历包括 JVM 的初始化、类加载等过程,导致启动速度相较于其他语言来说是处于劣势的。 应用预热时间过长,无法立即达到性能峰值。比如如果没有对应用做一些预热机制,并且对 RT 又比较敏感的应用,会导致发布时有一定的接口超时情况。 内存、CPU 等系统资源占用高。当占用过高时,不得不为 Java 应用提供更高规格的实例,而切分大规格的实例,这也会导致切分后造成的碎片更大,从而导致资源的浪费。 Java 构建的应用程序繁重,执行还需要具备 JDK 环境。