快速 Node.js 微服务引擎,用于以低延迟运行云功能。包括管理仪表板。
探索文档 »
报告错误·请求功能
Boltz 引擎是一个快速的集群式 Node.js 微服务引擎,在 100 毫秒内从冷启动启动实例,在正常情况下,后续与功能的交互在 10 毫秒以内。 V8 VM 实例用于分隔上下文,并允许您将代码构建为可与基于云的服务互操作的自托管微服务。多线程意味着您的实例可以在整个集群的所有 CPU 核心上进行扩展。管理 API 允许您从附带的管理界面管理 Boltz。
从发布页面下载,然后运行 start.sh 或 start.bat 文件来安装并运行 Boltz。
或者从 Docker Hub 上的bsnk/boltz-engine
拉取并设置以下步骤:
创建 config.json 和 Secrets.json - 您可以从发行版页面上的发行版下载它们
将它们放在一个文件夹中,这里是boltz-data
运行 docker 镜像
$ docker run --publish 5000:5000 --publish 8000:8000 -v /boltz-data:/boltz -v /boltz-data:/secrets/ -v /boltz-data:/database -v /boltz-data/sandbox:/sandbox/ bsnk/boltz-engine:latest
您可以根据自己的喜好更改这些文件夹,并自定义它在 config.json 和启动命令中使用的端口。您可能还应该使用 Boltz 版本(例如1.1.0
而不是最新版本,以确保生产中不会出现错误。 /boltz 是在容器内查找 config.json 文件的位置,其余部分可以根据文档进行自定义。
Boltz 允许您创建 VM 实例来接收和处理 Web 请求,以及创建卷来存储代码、配置,并让您将数据临时保存到虚拟磁盘。当需要重新加载实例或卷时,所有更改都会被清除。
包从 package.json 加载并安装在主机文件系统上的沙盒文件夹中,它们与同一进程上使用相同卷的任何实例共享。
Boltz 引擎的推荐用途是用于简单的微服务项目,这些项目稍后可以通过适当的云产品进行扩展。它具有较低的开销和学习曲线,使您可以专注于项目的功能,而不是将其设置为在云平台上运行(当它足够轻以在本地处理时)。它的速度也非常快,不到 10 毫秒即可在本地计算机上给出结果,而不是普通云函数上的数千毫秒。此外,它还易于使用附带的管理界面。
Boltz 引擎存在一些问题,包括:
由于实施了单独的卷 node_modules 沙箱,因此包安装大小较大。
管理 API 使用基本身份验证,这意味着您必须重新启动服务器才能更改密码。
使用 GCP Cloud Shell 实例,函数的任务是使用感叹号重复name
查询参数,其执行如下:
使用单个工作进程:每秒4500-5000
请求,延迟50ms
。
使用四个工作进程:每秒5500-6000
请求,延迟为4-8ms
。
使用 1 个工作线程的相同功能,我们可以实现1000
并发连接,执行200,000
请求,延迟约为100ms
和5600rps
。
Boltz 正在接受拉取请求以改进引擎或 Web 界面,位于此处的 Web 存储库中。它使用带有 Google eslint 规则集的 typescript,因此请尽量保持一致并保持高性能。
当您准备好分发更改时,需要确保将 Web 文件放在public
目录下,否则,只需在开发模式下与引擎一起运行 Web 界面即可。
版权所有 2021 bsnk-dev
特此免费授予获得本软件和相关文档文件(“软件”)副本的任何人不受限制地使用本软件,包括但不限于使用、复制、修改、合并的权利、发布、分发、再许可和/或销售软件的副本,并允许向其提供软件的人员这样做,但须满足以下条件:
上述版权声明和本许可声明应包含在本软件的所有副本或主要部分中。
本软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途的适用性和不侵权的保证。在任何情况下,作者或版权持有者均不对因本软件或本软件中的使用或其他交易而产生或与之相关的任何索赔、损害或其他责任负责,无论是合同、侵权行为还是其他行为。软件。