Java 云原生之路:Micronaut 框架

Micronaut是一个创新的Java框架,采用编译时处理,消除反射和动态类加载,提高性能和启动速度。它适用于微服务、无服务器应用等多种场景,与GraalVM原生镜像集成良好,支持快速构建原生可执行文件。此外,Micronaut提供了丰富的模块生态系统,包括依赖注入、AOP、云原生特性,且与IDE集成方便,便于开发和测试。
摘要由CSDN通过智能技术生成

对服务器端 Java 认识的改变

2017 年,Java 服务器端出现了一个认知问题。随着向微服务和轻量级容器化运行时的转变,开发人员开始注意到传统 Java 应用程序的膨胀,它们被打包并部署到 Servlet 容器的共享 Java 虚拟机 (JVM) 上。Serverless 的出现进一步加剧了这种认知。

正是在这段时间,Object Computing 的一个团队开始重新思考如何从头开始设计 Java 框架。于是 Micronaut 框架诞生了,这是一个采用了不同做法的 Java 框架,它通过使用 Java 注释将框架的组装计算工作所转移到了编译阶段。这完全消除了传统 Java 框架使用的反射、运行时生成代理和复杂的动态类加载。

2018 年 4 月,Micronaut 框架首次公开发布,引发了 Java 社区巨大的思维变化,改变了人们对 Java“缓慢而臃肿”的看法。许多较新的项目也采取了类似的做法:将更多的逻辑转移到应用程序的构建和编译阶段,以此来优化应用程序的启动性能和消除反射。

构建编译时的好处很明显:在编译时计算更多的东西,那么在运行时就可以以最优的方式执行。消除了反射、动态类加载和运行时生成代理,为我们提供了进一步的下游优化机会,包括 JIT 和 (关键的是)GraalVM 的原生镜像工具。因为采用了这种方法,原生镜像不需要额外的配置信息就可以对 Micronaut 框架应用程序进行静态分析。

由于 Micronaut 框架和 GraalVM 之间存在这种协同作用,Micronaut 框架联合创始人 Graeme Rocher 加入了 Oracle Labs。Oracle Labs 不仅有 GraalVM,也为正在进行的 Micronaut 框架的开发做出了重大贡献。

Micronaut 框架介绍

人们对 Micronaut 框架的一个常见误解是,它是专为微服务设计的。事实上,Micronaut 框架也为一系列应用程序类型提供了一种极限模块化的架构!

Micronaut 框架实现了 JSR-330 依赖注入规范,并提供了许多附加的内置特性,是一个绝佳的基于注解编程模型的通用框架。它的特性包括:

  • 配置注入;

  • AOP 编程概念,如拦截器;

  • 内置了对云原生应用程序基本概念的支持,如验证、缓存、弹性重试、作业调度等。Micronaut 基于 Netty I/O 工具包构建了一个 HTTP 服务器和 HTTP 客户端。

用户已经用 Micronaut 框架来构建无服务器应用程序、命令行应用程序,甚至是 JavaFX 应用程序。

Micronaut 框架为广泛的模块生态系统提供了基础,Micronaut 可以帮助它们解决一系列问题。正是由于这种灵活性,Micronaut 框架在开发者当中得到了极大的普及。以下 Micronaut 的架构图:

基础层基于 Java Annotation Processing (APT),实现了编译时依赖注入,支持各种模块的构建,包括基于 Netty 的 HTTP 服务器。但它也涵盖了其他领域,如数据访问、安全性和 JSON 序列化。

为什么要用 Micronaut 框架?

Micronaut 框架的目标是完全消除框架中使用的 Java 反射、动态类加载和运行时生成的代理和字节码等特性,以此来提供传统 Java 框架的轻量级替代方案。

消除传统框架对这些特性的依赖对提高性能、内存消耗、安全性、健壮性、调试和测试的便捷性有着深远的影响。与其他解决方案不同的是,Micronaut 框架应用程序也可以在 JVM 中快速启动!

因为启动速度得到了极大改进,就没有必要再区分集成测试和单元测试代码,这极大缩短了从编码到测试之间的时间。在过去,我们常常因为应用程序启动太慢不得不减少集成测试。Micronaut 框架消除了这种情况,所以框架中没有包含大量 HTTP 层的模拟工具。其他的许多框架之所以提供大量的模拟工具,是为了降低启动应用程序的成本。

消除反射减少了堆栈跟踪信息的数量,而在传统框架中,堆栈跟踪信息通常非常繁杂。

Micronaut 框架还提供了将代码转换成构建时编译的机制和 API。Micronaut 框架直接与 Java 编译器集成,当注解使用不当时,它会生成编译错误,从而提高代码的类型安全性和整体开发者体验。

Micronaut 框架入门

本节将介绍如何使用 Micronaut 框架来构建云原生 Java 微服务。

使用 Micronaut 框架有几种不同的方法。你至少需要 Java SE 8 或更高版本的 JDK。如果要使用原生镜像特性,你需要 Java 11 或更高版本的 GraalVM JDK。

要创建一个 Micronaut 应用程序,你可以使用已经集成到 IDEÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值