【问题标题】:What is the production deployment / runtime architecture of ResolveJS backend systems?ResolveJS 后端系统的生产部署/运行时架构是什么?
【发布时间】:2021-04-08 16:19:02
【问题描述】:

reSolveJS 通常在服务器上作为单个 NodeJS 应用程序运行以进行生产部署吗?

当然,事件存储和读取模型可能是独立的应用程序(例如数据库),但 CQRS 读取端和写入端是否在同一个 NodeJS 应用程序中处理?

如果是这样,考虑到 CQRS 的前提是读取端通常比写入端活跃得多,是否可以/是否可以拆分它们以使它们能够单独扩展?

考虑到使用可以自然扩展的 Lambda,resolve 云平台可以缓解这些担忧。也许这是推荐的生产部署选项?

也就是说,作为单体开发和测试(单个 NodeJS 应用程序)并在生产中部署到解决云平台以允许扩展?

再次感谢您开发和分享创新平台。

干杯, 阿什利。

【问题讨论】:

    标签: node.js aws-lambda cloud scaling resolvejs


    【解决方案1】:

    reSolve 应用程序可以像任何其他 NodeJS 应用程序一样使用容器或任何其他缩放机制进行缩放。

    所以多个实例可以使用同一个事件存储,并且可以配置多个实例使用同一个读取数据库,或者每个实例都有自己的读取数据库。

    reSolve 配置逻辑在应用的 run.js 代码中指定,因此您可以对其进行扩展以针对不同的实例类型进行不同的配置。

    或者您可以在所有实例中使用相同的代码,只需将命令和查询路由到不同的实例池。

    当然,reSolve Cloud 可以让您摆脱这些后顾之忧,在这种情况下,您可以使用本地 reSolve 作为开发和测试环境,并在那里进行部署。

    请注意,reSolve Cloud 尚未公开发布。此外,目前本地 reSolve 无法拥有所有需要的数据库适配器,因此尚未编写。

    【讨论】:

    • Roman,您能否为“您可以在所有实例中使用相同的代码,只需将命令和查询路由到不同的实例池”选项提供一些示例?我想知道 reSolve 如何处理来自同一个事件存储的多个正在运行的服务器。聚合不需要在所有正在运行的服务器之间区分吗?最后,这和eventBroker的配置有关系吗? reSolve 文档中没有很多相关信息涉及此内容。如果相关的话,我也为 reSolve 提交了 Github 问题。谢谢!
    • 我在那里回答了github.com/reimagined/resolve/issues/…,一切都清楚后会在这里更新答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-27
    • 2010-12-10
    • 2019-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-01
    相关资源
    最近更新 更多