新网Logo
首页>主机-资讯>

Micronaut 2.0增强了工具,改进了对无服务器和GraalVM的支持

登录 注册

Micronaut 2.0增强了工具,改进了对无服务器和GraalVM的支持

  • 来源:网络
  • 更新日期:2020-08-11

摘要:Object Computing,Inc.(OCI)正式发布了Micronaut 2.0,这是基于堆栈的基于JVM的框架的主要版本,该框架有助于使用Java,Groovy和Kotlin等语言创建基于微服务的,云原生和无服务器的应

Object Computing,Inc.(OCI)正式发布了Micronaut 2.0,这是基于堆栈的基于JVM的框架的主要版本,该框架有助于使用Java,Groovy和Kotlin等语言创建基于微服务的,云原生和无服务器的应用程序。

这个新版本通过Micronaut Launch的可用性,彻底改版和更快的Micronaut CLI,新的Maven插件以及升级到Gradle版本,极大地提升了开发人员的体验。现在,它支持用Groovy 3编写的Java 14应用程序以及包括RxJava 3和Reactor在内的反应式框架。通过添加对Azure Functions和Google的Cloud Functions的支持,已扩展了无服务器功能。它还提供对HTTP / 2和Servlet的支持以及改进的安全性设计。最后,新版本通过与GraalVM的更深入的集成提供了更高的性能,优化了内存消耗,并且在整个框架中的启动时间平均平均缩短了20%。

“ Micronaut 2.0是Micronaut的又一重大飞跃。我们通过引入运行时选项(包括servlet支持甚至更好的GraalVM本机映像支持)扩大了Micronaut的范围。我们对无服务器的持续投资是由用户需求驱动的,并且是无服务器的另一个重要标志。 Micronaut。”

— Micronaut基金会的联合创始人兼董事Jeff Scott Brown,Grails和Micronaut在对象计算领域的实践负责人。

让我们看一下新版本的一些亮点。

Micronaut 2.0包括一项全新的启动服务,即Micronaut Launch,该服务可帮助基于Micronaut的应用程序提供支持。Launch 既可以用作基于浏览器的工具,也可以用作REST API,可以帮助快速搭建和生成基于Micronaut的应用程序。它还提供了所生成应用程序的预览。传统的Micronaut CLI已通过GraalVM本机映像进行了全面的重新设计,重点是性能和效率。Micronaut Launch是Micronaut CLI的包装,可确保互操作性。

对Maven的支持已经升级,使其与当前的Gradle功能集功能相同。提供了一个新的Maven插件(mn:run),这有助于通过Maven通过自动重新编译和重新启动功能来运行Micronaut应用程序。除此之外,Maven项目继承自新的父POM,该父POM可以更清晰地配置依赖项管理。

Gradle版本已升级到6.5,从而为Micronaut 2.0项目带来了增量编译支持。从本质上讲,这意味着Micronaut不必为每个构建都运行完整的注释处理器。

通过添加Google Cloud Functions和Azure Functions,无服务器支持变得更加强大,同时改善了AWS Lambda的功能集。Micronaut提供了两种方法来帮助构建无服务器应用程序。第一种方法定义了传统的Micronaut应用程序,并向其添加了相应的无服务器功能功能(例如,云功能,Azure功能或lambda)。根据所选的无服务器平台,Micronaut将提供必要的管道基础结构,以将功能请求路由到应用程序。

第二种方法定义了“无服务器功能”应用程序类型,使开发人员能够编写特定于所选无服务器功能功能的直接低级功能代码(例如,订阅发布订阅消息的Google Cloud后台功能)。

下面描述了用Micronaut为Google Cloud功能无服务器平台编写的低级无服务器功能的示例。

public class Function extends GoogleFunctionInitializerimplements BackgroundFunction<PubSubMessage> {

@Inject LoggingService loggingService;

@Override public void accept(PubSubMessage message, Context context) { loggingService.logMessage(message); } }

class PubSubMessage { String data; Map<String, String> attributes; String messageId; String publishTime; }迈向新版本的其他功能包括能够利用无服务器平台提供的SDK进行本地测试功能,Micronaut包含了这些SDK作为依赖关系,并且对AWS开发工具包2的GraalVM本机映像支持。

除了Netty之外,Micronaut 2.0现在还增加了对嵌入式servlet运行时(Jetty / Tomcat / Undertow)的支持。这使开发人员可以在其Micronaut应用程序中使用基于Servlet的传统功能。开发基于servlet的Micronaut应用程序的经验与使用Netty包括自动重新编译/更快的测试等相同。这还包括为基于servlet的uber jars创建基于GraalVM的本机映像的功能。

下面显示了一个使用CLI创建基于servlet的Micronaut应用程序然后运行它的示例。这使用码头服务员特征。

mn> create-app demo-servlet --features jetty-server

$ cd demo-servlet $ ./gradlew run org.eclipse.jetty.server.Server - Started @1219ms io.micronaut.runtime.Micronaut - Startup completed in 615ms. Server Running: http://localhost:8080/ Micronaut 2.0增加了对HTTP / 2的支持,并且可以通过对 application.yml Micronaut应用程序的文件。该支持当前仅适用于基于Netty的HTTP服务器和客户端。

服务器端的配置如下所示。

micronaut: ssl: build-self-signed: true application: name: http2Demo server: http-version: http_2_0 对GraalVM本机映像的支持已脱离实验状态,现在已成为一流的,并在整个框架中扩展了支持,进一步巩固了对GraalVM的承诺。这包括对静态资源,JDBC驱动程序,Hibernate,Flyway,AWS SDK 2和其他区域的自动配置。

新网箭头云服务器