SuperTokens Core Api 层可以扩展吗?

Can the SuperTokens Core Api layer be scaled?

我们正在使用 SuperTokens 进行 POC 验证。我们需要无密码、Email/Password 和社交登录功能。有了这个功能,SuperTokens Core Api 层是否可扩展?如果是这样,推荐的缩放方法是什么?

SuperTokens 有两组 APIs:

  • 核心驱动程序接口 (CDI):API 通过 SuperTokens 核心微服务公开。
  • 前端驱动程序接口 (FDI):API 通过我们的后端 SDK 公开。

您应用的前端仅调用 FDI API,而我们的后端 SDK 又调用 CDI API。所以您的后端是前端和 SuperTokens 核心服务之间的代理。

FDI APIs(由您的前端调用)的可扩展性取决于您的 API 层的可扩展性 - 这完全由您控制。

CDI APIs(通过 SuperTokens 核心服务公开)的可扩展性取决于:

  • 已部署的核心实例数。
  • 核心与后端有多“远”。
  • 核心连接的底层数据库的可扩展性。

每个 SuperTokens 核心实例都是无状态的,可以轻松扩展/缩小。但是,它们都需要连接到数据库的同一个实例,因此这里的限制因素变成了数据库本身的可扩展性。

由于只有您的后端 API 层查询 SuperTokens 核心,因此建议将核心托管在与您的后端相同的区域。

也就是说,一个核心实例每秒可以轻松处理数百个请求。您可以通过设置进一步提高它的性能:

  • 服务器最大并行请求数
  • 最大并行数据库连接数。

最后,如果我们考虑不同类型的身份验证操作,会话验证是迄今为止最常见的操作(与登录/注销或更改密码相比...)。默认情况下,SuperTokens 以无状态方式验证用户会话。这意味着您的后端 API 层根本不需要查询核心来进行会话验证。

这反过来意味着您可以轻松地扩展 SuperTokens,以处理具有数十万个并发会话且核心实例数量相当少的数百万用户。