7

我即将开始我公司的一个新项目。我在一家受标准和最佳实践高度管理的企业工作。我们已经部署了 Kofax TotalAgility。我正在尝试使用 Elsa 作为基于 .Net 4.6 的 Kofax 的轻量级替代品。我在 Blazor 服务器端和 .Net 5 上。

所以艾莎提出上诉。其次,艾莎严重缺乏帮助。通用或业余开发人员不会使用基于工作流的业务层。工作流在企业环境中更为常见。我们为具有 AlwaysOn SQL Server 的应用程序提供负载平衡部署模型。如果我将 Elsa 嵌入到应用程序中,并将其表作为应用程序数据库的一部分,我需要将其部署到指向同一数据库的两个节点。当涉及到获取保存在数据库中的活动并执行操作时,这会产生竞争条件。这就是 Kofax 专门部署为单个节点的原因。这意味着我需要为我的所有应用程序部署基于 Elsa 的通用解决方案。而且我根本没有样本或指南来执行此操作。

有人可以帮我理解这种情况吗:Elsa 在服务器上部署并运行,IIS 暴露了它的 API 接口(如果它已经部署在 .Net 5 Web API 中)。然后,一个单独的应用程序将利用这个 Elsa 实例。

我在这里的理解可能是错误的。请帮忙。

4

1 回答 1

3

Elsa 1(当前版本)不适合在多个节点上使用。您不仅会遇到 OP 提到的并发问题,而且具有基于时间的活动的工作流将导致给定的工作流在每个节点上执行,这在正常用例中是不可取的。

Elsa 2(目前在 MyGet 上作为预览包提供)是另一回事。与 Elsa 1 一样,它设计用于在您自己的应用程序中作为添加工作流功能的轻量级解决方案。但与 Elsa 1 不同的是,它还设计为作为单独的工作流服务器运行,公开 API 以供其他应用程序与之交互。例如,仪表板应用程序不直接访问 Elsa 数据库,而是利用工作流服务器的 API 端点。此外,Elsa 2 旨在同时托管在单节点和多节点环境中,让您可以轻松横向扩展工作流服务器。

Elsa 2 计划于 3 月底发布。

于 2021-02-26T16:31:57.587 回答