0

我正在为多租户应用程序评估 ArangoDb+Foxx。

目前我有一个协调器服务,_system它创建新数据库并将单个服务安装到该数据库中,该数据库引导它并用作 api 层。

拥有一个处理整个 api 堆栈的单一 Foxx 服务是否存在优化问题?还是将其拆分为许多较小的服务以便可以将请求传播到不同的 V8 上下文是否更好?

最后,对于每个数据库/租户一个服务甚至多个服务,您现在是否需要在需要更新时为每个租户更新每个服务?当您尝试应用滚动或蓝/绿部署时,这听起来有很大的错误和错误空间。有没有更好的方法在集群中使用 Foxx 处理多租户应用程序?也许在该级别的单一服务_system

谢谢!

4

1 回答 1

0

Foxx 服务可以为单个租户托管整个层/堆栈。对我来说,这是否是一个好主意的问题不是对每个租户本身的考虑,而是对功能统一性的考虑。话虽如此,您的身份验证计划(只要它们托管在 arangodb 中)也可能会起作用。单点登录和相反的模型也可能会将您推入人为的分离。

如果通过针对复杂应用程序的既定方法推出,您对复杂性和由此产生的易错性的担忧听起来是难以管理的。良好的测试覆盖率应该很容易检测到这些错误。我还认为,同样的错误可能发生在广泛分布的应用程序和更集中的应用程序中,或者像你所说的那样是单一的。但是升级策略绝对应该是规划的一部分,如果您认为不同的部分可以保持不变而其他部分预计会更频繁地升级,那么将它们分开可能是有意义的。

TLDR:没有主要的潜在机制会迫使您采取一种或另一种方式。作为指导,我认为您应该能够向第三方解释您的决定。

于 2018-06-19T07:28:13.140 回答