Nimbus:一款用于构建 Java 无服务器应用程序的框架

栏目: 编程工具 · 发布时间: 6年前

内容简介:框架作者 Thomas Allerton 在最近的一篇 Medium 博文中写道:“对于那些想要开发简单的应用程序的新手们来说,他们需要面临非常陡峭的学习曲线。他们可能只想要部署一些 HTTP 端点用来保存数据,但仍然要学习很多与云相关的概念”。Nimbus 提供了一些注解,支持一些常见的后端操作,这些操作可用于构建基于函数的应用程序,这样,开发者就不需要去学习云配置语法和 FaaS API 了。Allerton 在博文中表示,Nimbus 的主要优势是不需要通过创建配置文件来声明云资源(如 AWS SAM

Nimbus 是一个旨在简化 FaaS 应用程序开发、测试和部署的 Java 框架。Nimbus 提供了一组与云平台无关的公共接口,用于与云提供商的无服务器功能发生交互。

框架作者 Thomas Allerton 在最近的一篇 Medium 博文中写道:“对于那些想要开发简单的应用程序的新手们来说,他们需要面临非常陡峭的学习曲线。他们可能只想要部署一些 HTTP 端点用来保存数据,但仍然要学习很多与云相关的概念”。Nimbus 提供了一些注解,支持一些常见的后端操作,这些操作可用于构建基于函数的应用程序,这样,开发者就不需要去学习云配置语法和 FaaS API 了。

Allerton 在博文中表示,Nimbus 的主要优势是不需要通过创建配置文件来声明云资源(如 AWS SAM 或者 Serverless 框架),这样开发人员“就不会因为忘记了某些参数而犯错”。另外,Nimbus 会对部署参数进行编译时检查,以便尽早检测出错误。

为了可以更好地体验如何使用这个框架,可以参看下面这个示例。它使用了 @HttpServerlessFunction 注解来创建一个简单的 REST API。

复制代码

publicclassRestApi {

@HttpServerlessFunction(path="getOsTypes",method= HttpMethod.GET)
public List<String> currentOsTypes(){
returnArrays.asList(newString[] {"Windows","Mac","Linux"});
}
}

Nimbus 还支持其他的操作:

  • WebSocket Function:用于处理 websocket 请求;

  • Document Store Function:用于执行因文档存储变更而触发的代码;

  • Key Value Store Function:用于执行因键值存储变更而触发的代码;

  • Notification Function:用于执行由通知触发的代码;

  • Queue Function:用于执行因队列变化而触发的代码;

  • Basic Function:用于执行不需要触发器的代码;

  • File Storage Function:用于执行基于文件存储事件(文件创建和删除)的代码;

  • After Deployment Function:用于执行部署之后需要立即执行的操作。

除了支持各种不同的操作之外,Nimbus 还支持几种数据存储类型。下面的示例演示了如何使用 @DocumentStore 注解来创建一个文档存储。

复制代码

@DocumentStore
publicclassOsPreference {

@Key
privateStringid;

@Attribute
privateStringpreference;

publicOsPreference(Stringid,Stringpreference) {
this.id = id;
this.preference = preference;
}

// ...
// getters & setters
// ...
}

在创建好文档存储后,可以使用 DocumentStoreClient 来持久化数据。

复制代码

privateDocumentStoreClient<OsPreference> client =
ClientBuilder.getDocumentStoreClient(OsPreference.class);

@HttpServerlessFunction(path="setOsPreference",method= HttpMethod.POST)
@UsesDocumentStore(OsPreference.class)
public String setOsPreference(OsPreferenceosPreference){
client.put(osPreference);
return"Success";
}

其他支持的数据存储(和客户端)包括:用于存储关系型数据的关系型存储、用于存储键值数据的键值存储和用于存储对象的文件存储(支持静态网站托管和文件上传)。

测试也是构建无服务器应用程序的另一个常见难点。Nimbus 提供了单元测试和集成测试支持。在进行单元测试时,可以为上述列表中的任何一个操作创建本地部署,可以接受请求,并验证函数是否被正确调用,或者数据是否被正确保存。Nimbus 对集成测试的支持相对有限,只支持基于 HTTP 的测试。在进行集成测试时,会启动一个本地 Web 服务器,用于验证请求调用了正确的函数。

目前,Nimbus 初始版本只支持 AWS,对其他平台的支持已经被纳入计划中。

要想了解更多有关 Nimbus 的细节,可以阅读 入门指南 、访问 参考文档 ,或者克隆它的 GitHub 仓库 代码

查看英文原文: Nimbus: New Framework for Building Java Serverless Applications


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Computational Geometry

Computational Geometry

Mark de Berg、Otfried Cheong、Marc van Kreveld、Mark Overmars / Springer / 2008-4-16 / USD 49.95

This well-accepted introduction to computational geometry is a textbook for high-level undergraduate and low-level graduate courses. The focus is on algorithms and hence the book is well suited for st......一起来看看 《Computational Geometry》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具