如何在服务结构

时间:2016-12-30 14:55:13

标签: azure-service-fabric

在服务结构应用程序中,使用Actors或Services - 如果您想确保在每个节点上运行代码块,那么设计是什么。

我的第一个想法是它必须是一个实例计数设置为-1的服务,但也适用于你设置为3个实例的情况。如何设计服务确保它在每个实例上运行某些操作。

我自己的想法是让一个有状态的Actor控制需要运行的操作,并且它将使用serviceProxy来调用每个实例上的方法 - 但这只是一个天真的想法,我不知道它是否可能或者如果这是正确的方法吗?

1 个答案:

答案 0 :(得分:1)

一些背景信息

只有无状态服务才能被赋予-1例如计数。您无法使用ServiceProxy定位特定实例。

使用一个或多个partitions(数据分片)部署有状态服务。分区计数是作为服务部署的一部分提前配置的,无法自动更改。例如,如果您的群集已扩展,则不会自动添加分区。

自治工作者

也许你可以通过运行无状态服务(在所有节点上)来反转控制流,让他们查询一个'存储库'用于工作项目。存储库可以是有状态服务,用于将工作项存储在队列中。

这样,添加更多实例(扩展群集)可以在不修改代码的情况下提高吞吐量。无状态服务实例成为自治工作者。 (与智能的协调者演员相对)