问题标签 [orleans]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
134 浏览

.net - 如何使用代码配置而不是 XML 文件配置启动服务器?

我想用代码配置而不是XML文件配置来启动服务器,但是如果不调用LoadOrleansConfig方法,silo服务器就无法启动。

0 投票
1 回答
252 浏览

distributed-computing - 奥尔良 - 当系统存储关闭或无法访问时会发生什么?

我正在评估 Microsoft Orleans 作为自定义分布式缓存(以及其他功能)的基础。

我能够使用 MembershipTableGrain 创建一个不可靠的集群用于评估目的。一切都按照文档中的描述进行。

现在我计划使用本地服务器建立一个可靠的集群(Azure 不是一个选项)。我似乎倾向于使用关系存储 (SqlServer/ADO.net) 成员资格提供程序

我的问题是:

如果 Silo Membership 数据库关闭或无法访问(服务器中断、网络问题等),集群内的 silo 状态会怎样?据我了解奥尔良会员协议,我认为它会影响整个集群。

0 投票
1 回答
715 浏览

c# - 如何在同一个 AppDomain 中运行 Microsoft Orleans Silo 和客户端

我想要完成的只是:在同一个 AppDomain 中运行 Silo 和 Client

使用奥尔良的教程一切都很顺利:

当我想使用相同的 AppDomain 时出现问题:

为什么我要走这条路:这个想法是为了防止客户端通过网络退出并再次进入,因为它们在同一台机器上运行。由于网络活动,这会产生开销。所以我试图避免这种开销。

当然,如果本地 Silo 出现故障,客户端必须通过网络出去才能找到可用的 Silo。

让事情变得过于复杂的是,我看不到任何有用的错误,只有错误和一些 lib 引用未找到错误。

原始代码被简化只是为了避免弄脏它,但是如果你觉得你需要看看我到目前为止做了什么,请告诉我。任何帮助、建议或建议都是有用的。

0 投票
2 回答
977 浏览

storage - 我应该如何在奥尔良使用存储提供程序

我是奥尔良的新手。我想知道如何在奥尔良使用谷物储存功能。我应该像消息队列一样使用它吗?它是否会临时存储我的状态并保持数据可用,即使它抛出异常或服务器崩溃。

谢谢!

0 投票
1 回答
156 浏览

.net - 奥尔良存储提供商 DynamoDB,未加载提供商

我刚刚在 Visual Studio 中创建了一个 silo 项目,并安装了 orleans silo nuget 包。然后,当我尝试使用存储提供商 AWS DynamoDB 时,它给了我以下错误:

我的配置文件如下所示:

0 投票
1 回答
1480 浏览

c# - 找不到 AppDomainSetup

摆弄微软奥尔良。这是我从教程中编写的筒仓,我得到了“找不到 AppDomainSetup”的奇怪错误,尽管我可以在系统下的文档中看到它。

谷歌搜索导致无处可...

0 投票
1 回答
833 浏览

f# - 在 .net 中构建工作流应用程序的最佳方法

我需要在 .net 中构建一个动态工作流应用程序,它基本上允许创建、监视、暂停、重新启动、持久化和动态更新工作流。工作流的每个节点都是一项高要求的计算任务,可能需要几个小时,并且工作流将由至少 20 个节点组成。

目前,似乎最好的解决方案是使用 WF4,但环顾四周,我发现 F#、Orleans 或 Akka.NET 中的基于代理的编程对于实现工作流解决方案非常有吸引力,与 WF4 相比,没有那么多水电学习。使用基于代理的编程开始解决方案是个好主意,还是应该继续使用 WF4?

0 投票
2 回答
311 浏览

nservicebus - 不确定如何在 Orleans/Service Fabric 中实现一些 NServiceBus 功能

我知道这是两个不同的系统,目的略有不同,但在某些情况下,它们可以服务于相同的目标,我想知道将我们的一些服务从 NServiceBus (NSB) 迁移到 Orleans 或 MS 有多容易服务结构。我花了几个小时从高层次上了解 Orleans 和 MS Service Fabric 是什么,但有些问题没有得到解答。我能否列出一些我想在迁移中保留的 NSB 功能,希望您能判断 Orleans 或 Service Fabric 是否支持类似的功能:

  1. 在 NSB 中,我们可以设置服务应该运行的最大线程数,以便我们可以优先考虑具有低延迟的服务而不是具有高延迟的不太关键的服务。我可以在单个或多个应用程序服务器上配置最大数量的实例,特定于 Orlean 的谷物应该在其下运行吗?我说的是具有不同 ID 的谷物

  2. 我们的一些服务依赖于可能暂时不可用的第三方服务调用。如果抛出异常并且消息通过配置的重试次数运行。如果处理该消息的所有进一步尝试都结束了(服务仍然不可用),则该消息将被放入错误队列中,我们可以在其中看到它并在第三方服务恢复正常时随时重新处理。我知道我们可以在 Orleans 之上实施其他工具以拥有类似的系统,但是 Orleans 或 MS Service Fabric 是否在消息重试和在特殊位置或特殊状态下失败的消息/呼叫存储方面提供开箱即用的东西?

  3. 在极少数情况下,当我们的系统因客户端发起的传入消息而过载时,消息会卡在传入队列中,系统会尽其所能处理,而所有其余消息都在等待轮流按照“先到 -先到先得”的原则。我猜奥尔良不能满足这个要求,因为它听起来更像是一个纯粹的排队概念,但以防万一有人知道如何将它迁移到奥尔良,比如集成到某种排队系统

0 投票
1 回答
330 浏览

persistent-storage - 奥尔良 - 批量数据导入

我目前正在为我们的组织了解 MS Orleans。我知道,只要所有数据库更新都通过谷物进行,奥尔良谷物就会与数据库保持同步。

但是,如果有一些批量处理过程(如数据文件的处理)更新/插入/删除数据库中的记录,会发生什么?

Orleans 是否有一些流程或模式可以解决这个问题?还是我们需要通过 Grains 处理所有批量过程?如果我们通过谷粒处理批量操作 - 我们是通过更新每个谷粒来解决这个问题(如果每个谷粒都将自己更新到数据库中,这似乎非常昂贵)还是有一些批量模式可以用来强制所有受影响的谷粒“刷新”?

答案可能很明显。我在文档中没有找到关于这些场景的任何内容。

我们将使用 Orleans 作为 MS-SQL 服务器的本地安装。

编辑:

我指的是更新 N 个颗粒数据的过程。对于 sql 来说,一次更新 1000 条记录的调用比更新一条记录的 1000 次调用要好得多。一个具体的例子是库存更新:每个产品库存都是一粒谷物。每隔 15 分钟左右,第 3 方会收到一份文件,通知应用程序之外发生的库存数量变化。这应该在数据库中更新并反映在颗粒中。文件可能有 10k 的记录...

0 投票
1 回答
645 浏览

sql-server - 奥尔良 - 将谷物持久化到“传统”表格和列中

我正在为我们的组织了解奥尔良。

我发现的基线以及所有“官方”文档都是使用 Orleans 内置的能力将颗粒作为 blob 保存到表中。

我发现了一些使用StateMapFactory使谷物持久保存到“常规”表和列的能力的快照(我从Using SQL Server as Orleans storage得到了这个)

是否有一个完整的例子来说明如何做到这一点(任何使用 SQL 服务器的简单例子都可以)。我在 github 项目站点上没有找到任何这样的示例。

是另一种更内置的持久化到表中的能力吗?EG 使用 JSON/XML 序列化到表中?