Service Fabric:具有分区负载平衡的 Reliable Services 管道

Service Fabric: Reliable Services pipeline with partitions load balancing

在尝试实施 Service Fabric 的 Reliable Services 管道时,我可以从以下三种方法中进行选择:

看起来 C 是个不错的选择。

在这种情况下,我需要在工作服务之间实现一种消息泵。

比如我有2种工人服务。第一个是 IO-bound,不需要可扩展性。其次是 CPU-bound 并且它需要可伸缩性,因此它使用分区。我不在乎什么分区将用于处理具体项目,因此消息泵必须充当负载平衡器并将项目排入 CPU 绑定服务,输入队列中的项目最少。现在我已经为此创建了一个有状态服务。

在这种形式下,这看起来与 TPL 数据流管道非常相似。

我的问题是我是否正确使用了 Service Fabric?这里有过度工程吗?

Reliable Actors 是否更适合这种管道?(或管道的一部分)

我认为 Actors 不是解决这个问题的正确方法。 RunASync() 方法很难在 Actor 中模拟。您可以为此使用计时器和提醒,但感觉不自然。所以我会为此提供服务。