在奥尔良何时使用 IGrainFactory 与 IClusterClient

B S*_*dar 3 c# orleans .net-core asp.net-core

这是共同托管模型(ASP.NET - Web API 和 Orleans)中的 Orleans 应用程序。我能够将 IGrainFactory 或 IClusterClient 注入到 webapi 控制器中。两人似乎都工作顺利。

我想了解,什么时候使用IGrainFactory,什么时候使用IClusterClient?

小智 7

IClusterClient 旨在从访问 silo 集群的客户端使用。在你的例子中,它是 webapi 控制器。IGrainFactory 在筒仓内的服务类中使用来获取 Grain 的实例。

也许下面的文章可以带来一些启发。 https://github.com/dotnet/orleans/issues/988

  • 您可以使用其中任何一个。无论您是在筒仓还是外部客户端(例如 Web 前端)中,IClusterClient 和 IGrainFactory 都可供您使用。您选择哪一个取决于您,但通常我会建议 IGrainFactory。IClusterClient 实现了 IGrainFactory 并添加了一些其他方法。大多数这些方法特定于外部客户端(连接、中止),但也有用于访问流的 GetStreamProvider。 (6认同)