8 个版本
0.1.9 | 2022 年 3 月 23 日 |
---|---|
0.1.8 | 2022 年 3 月 18 日 |
0.1.6 | 2022 年 2 月 26 日 |
#288 在 WebSocket 中
34 每月下载
用于 dis-spawner-api
44KB
897 行
快速链接
组件 | 图片 | 包 | 版本 |
---|---|---|---|
核心 |
dis-spawner |
||
控制器 |
spawner-controller |
||
边车 |
spawner-sidecar |
||
清理器 |
spawner-sweeper |
||
API |
spawner-api |
dis-spawner-api |
Spawner
观看 3 分钟的演示,了解如何安装和使用 Spawner。
Spawner 允许 Web 应用程序创建 会话生命周期后端,这是为单个(或小型用户组)用户专门的服务器进程。
服务器进程可以是任何支持 HTTP 的服务器,包括 WebSocket 服务器。Spawner 提供了一个 API,用于在新的用户连接时启动这些服务器,并在用户断开连接时自动终止它们。
Spawner 仍然处于开发阶段,不断进化。如果您有兴趣使用它,我们很乐意了解您的用例,并帮助您开始使用。请随时在 GitHub 上创建一个问题 或联系 Paul 在 [email protected]。
用例
Spawner 旨在满足 Web 应用程序需要一个在会话期间与之通信的专用、有状态的后端的情况。目前,这种方法在像 GitHub Codespaces 这样的基于 Web 的 IDE 中很常见,为每个用户启动一个容器来运行代码。当文档状态非平凡且需要比 Pub/Sub 架构更多的功能时,它也很有用(例如,参见 Figma 的描述,了解他们如何为每个活动文档运行一个进程。)
通过降低实验这种架构的风险,我们希望 Spawner 能够帮助开发者发现新的用例,例如将大量数据集加载到内存中,以便进行低延迟的交互式数据探索。
根据您的需求,它还可以作为游戏和虚拟空间的底层后端,但也可以查看 Agones 了解该用例。
架构
Spawner 是基于 Kubernetes 开源容器编排系统的。Spawner 提供了 SessionLivedBackend
自定义资源,代表单个应用程序后端实例,以及一系列组件,它们协同工作以拥有该后端的整个生命周期。
- API 提供了 JSON over HTTP API,用于创建和检查
SessionLivedBackend
实例的状态。 - 控制器 监视
SessionLivedBackend
对象的创建,并创建必要的后端计算和网络资源,以便提供后端并允许外部用户连接到它。 - 边车 是一个轻量级 HTTP 代理,它运行在你提供的应用程序容器旁边。它记录活动 WebSocket 连接的数量,以及最后 HTTP 请求的时间戳,并将其报告给清扫器。
- 清扫器 在集群的每个节点上运行,并打开连接到该节点上运行的所有应用程序后端的边车。当它检测到后端空闲时,它将该后端标记为终止,以便其资源可以为另一个后端使用。
更多信息 & 快速入门
有关更多信息,请参阅 文档 目录。
依赖项
~65MB
~1M SLoC