我有一个独特的网络服务配置问题。
我有几个相同的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服务之间同步配置的工具?提前谢谢。
答案 0 :(得分:2)
您还可以为每个客户端创建一个Application实例。与Service实例结合使用,该实例将client-id注册为其URL的一部分。
所以你得到类似的东西:
您可以将其配置为根据需要创建任意数量的实例。使用内置的反向代理从外部访问它们。
答案 1 :(得分:0)
如果我正确理解您的要求,您可以使用actor模型实现服务,并使用clientId作为实例ID。在actor模型中,只为集群中的每个instanceId创建/运行一个实例。在单线程执行模型中,Actor是独立的,独立的逻辑和状态单元。