Service Fabric:具有分区负载平衡的可靠服务管道

Posted

技术标签:

【中文标题】Service Fabric:具有分区负载平衡的可靠服务管道【英文标题】:Service Fabric: Reliable Services pipeline with partitions load balancing 【发布时间】:2016-02-20 06:57:56 【问题描述】:

在尝试实现 Service Fabric 的可靠服务管道时,我有以下三种方法可供选择:

而且看起来 C 是一个不错的选择。 Details here.

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

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

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

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

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于Service Fabric:具有分区负载平衡的可靠服务管道的主要内容,如果未能解决你的问题,请参考以下文章

Service Fabric TCP 反向代理

Service Fabric - 如何保留或保护我的硬编码端口

如何配置服务结构负载均衡器以停止对 CPU 过载节点的请求?

Azure Service Fabric 中的可扩展工作线程

是否可以添加或删除 Service Fabric 有状态服务命名分区

Service Fabric基本概念:Partition/Replicas示例