课程 ID: 16186
描述:
案例背景:
云原生时代 Java 受到前所未有的挑战,容器技术的广泛应用严重削弱了 Java 引以为傲的“一次编译,到处运行”的优势,而 Java 虚拟机的资源消耗大启动慢等劣势在函数计算场景下备受诟病,“面向长时间大规模程序而设计”的原则也被微服务和 serverless 打破。 基于语言层虚拟化的 Java 该如何应对以操作系统层虚拟化为前提的云原生时代?
解决思路:
将 Java 代码直接编译为原生代码的静态编译技术是解决上述问题的主要思路,Quarkus / Spring Native / GraalVM / Micronaut / Helidon 等项目都在近几年中努力探索。Dapr 是新兴的分布式应用运行时,在以能力抽象+构建块方式帮助构建微服务应用的同时,Sidecar 模型也可以有效地帮助应用轻量化。结合使用静态编译技术和 Dapr,Java 可以克服基因缺陷,从而适用于函数计算、serverless 等云原生场景,借助庞大的用户群和成熟的生态,在云原生时代继续辉煌。
成果:
结合使用 Quarkus 和 Dapr 并进行静态编译所得到的 Java 应用,其二进制文件大概53M,启动时间约0.1秒,占用内存45M,远远优于普通 Java 应用,完全可以胜任 serverless 场景。Java 静态编译技术加 Sidecar 模型,将在云原生时代为 Java 带来新的希望和突破。