Service Fabric - 在同一Web服务的多个实例之间同步配置

时间:2017-03-23 13:34:30

标签: c# .net configuration azure-service-fabric

我有一个独特的网络服务配置问题。

我有几个相同的Web服务实例(通过Service Fabric托管)

我需要将每个Web服务的唯一实例连接到客户端ID。

例如,如果我有5个服务实例,以及以下5个客户端ID:

A,B,C,D,E

我想配置每个服务以使用它的唯一客户端ID,如下所示:

1 - >甲

2 - >乙

3 - > ç

4 - > d

5 - > ë

客户端的顺序或它们配置的服务无关紧要。重要的是每个服务只能获得一个唯一的客户端ID。

我想到的一个可能的解决方案是使用存储客户端ID的SQL表,以及使用" IsTaken"的列。每个服务锁定其他服务访问该表,然后获取一个未采用的客户端ID,并将IsTaken值更改为true。

还有其他方法可以解决这个问题吗?也许是一个专门用于在多个Web服务之间同步配置的工具?提前谢谢。

2 个答案:

答案 0 :(得分:2)

您还可以为每个客户端创建一个Application实例。与Service实例结合使用,该实例将client-id注册为其URL的一部分。

所以你得到类似的东西:

您可以将其配置为根据需要创建任意数量的实例。使用内置的反向代理从外部访问它们。

答案 1 :(得分:0)

如果我正确理解您的要求,您可以使用actor模型实现服务,并使用clientId作为实例ID。在actor模型中,只为集群中的每个instanceId创建/运行一个实例。在单线程执行模型中,Actor是独立的,独立的逻辑和状态单元。