学透 Spring:从入门到项目实战
丁雪丰
美团研究员
1073 人已学习
立即订阅
登录后,你可以任选4讲全文学习
课程目录
已完结/共 45 讲
时长 07:11
时长 15:51
时长 00:10
时长 02:03
时长 00:39
学透 Spring:从入门到项目实战
15
15
1.0x
00:00/00:00
登录|注册

附录 C 通过 Spring Native 打包本地镜像

在云原生应用越来越广泛的今天,大家对服务提出了很多新的要求。以前的服务只要跑起来,就长时间运行,启动慢一点、占用资源多一点都不是问题。在弹性伸缩,按量计费的云平台下,平时保持最小实例数,甚至 0 实例,请求到来后快速拉起一个新的服务实例,这就要求系统要能快速启动,必须是毫秒级;如果按 CPU 与内存的用量来计费,那服务占用的内存就要尽可能少,要在尽可能短的时间内达到性能峰值……
面对这些新挑战,Quarkus 和 Micronaut 这样的后起之秀 都能轻装上阵,直接面向云原生应用提供支持,而运行在传统 JVM 上的 Spring 系统多少有些力不从心,好在 Spring 家族也给出了自己的解决方案——Spring Native。

C.1 GraalVM 与 Spring Native

在开始介绍 Spring Native 之前,先让我们来了解一下 GraalVM,无论 Spring Native,还是 Quarkus,都需要依托于 GraalVM 来实现一些特定的功能。

C.1.1 GraalVM 简介

GraalVM 是 Oracle 开发的一款高性能 JDK 发行版 ,官网上罗列了它的几个重要特性。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

Spring Native 是一个工具,通过 GraalVM 实现高性能的 JDK 发行版,支持将 Spring 应用编译为本地镜像。该工具旨在解决 Spring Framework 中动态代理技术和类库的静态化问题,为云原生应用提供了一种解决方案。文章介绍了使用 Spring Native 将复杂的 Spring 工程编译为本地镜像的过程,包括调整依赖组件版本、代码调整和构建本地镜像。尽管 Spring Native 提供了便利,但将现有的 Spring 项目编译为本地镜像仍需调整依赖组件版本、代码,有时甚至需要放弃一些功能。文章还提到了构建本地镜像的过程中遇到的问题,以及针对这些问题的解决方案。此外,文章还介绍了在具体使用时的一些配置和调整,为读者提供了实际操作的参考。除此之外,文章还提到了一些优化方法,如使用 tomcat-embed-programmatic 代替 tomcat-embed-core 和 tomcat-embed-websocket,去除不必要的依赖等,以提高生成的本地镜像的性能和资源利用率。总的来说,Spring Native 为解决云原生应用中快速启动、资源占用少的需求提供了一种解决方案。文章最后还对比了使用本地镜像和传统的 Fat Jar 启动的性能差异,显示了 Spring Native 和 GraalVM 带来的性能提升。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《学透 Spring:从入门到项目实战》
立即购买
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部