Service Fabric - 在同一 Web 服务的多个实例之间同步配置
Service Fabric - Sync configuration between multiple instances of the same web service
我有一个独特的 Web 服务配置问题。
我有多个相同 Web 服务的实例(通过 Service Fabric 托管)
我需要将 Web 服务的每个唯一实例连接到客户端 ID。
例如,如果我有 5 个服务实例,以及以下 5 个客户端 ID:
A、B、C、D、E
我想配置每项服务以使用其唯一的客户端 ID,如下所示:
1 -> A
2 -> B
3 -> C
4 -> D
5 -> E
客户端的顺序或它们配置的服务并不重要。重要的是每个服务只能使用一个唯一的客户端 ID。
我想到的一个可能的解决方案是使用 SQL Table 来存储客户端 ID,以及一个包含 "IsTaken" 的列。每个服务锁定其他服务访问 table,然后取一个未使用的客户端 ID,并将 IsTaken 值更改为 true。
还有其他方法可以解决这个问题吗?也许是专门用于在多个 Web 服务之间同步配置的特定工具?提前致谢。
您还可以为每个客户端创建一个应用程序实例。与将客户端 ID 注册为 URL 一部分的服务实例相结合。
所以你会得到类似的东西:
- https://example.com/appX-clientA/service
- https://example.com/appX-clientB/service
- https://example.com/appX-clientC/service
您可以将其配置为根据需要创建任意数量的实例。使用内置的反向代理从外部世界访问它们。
如果我没理解错你的需求,你可以使用actor模型实现服务,使用clientId作为实例id。在actor模型中,集群中每个instanceId只有一个实例created/running。 Actor 是单线程执行模型中独立的逻辑和状态单元。
我有一个独特的 Web 服务配置问题。
我有多个相同 Web 服务的实例(通过 Service Fabric 托管)
我需要将 Web 服务的每个唯一实例连接到客户端 ID。
例如,如果我有 5 个服务实例,以及以下 5 个客户端 ID:
A、B、C、D、E
我想配置每项服务以使用其唯一的客户端 ID,如下所示:
1 -> A
2 -> B
3 -> C
4 -> D
5 -> E
客户端的顺序或它们配置的服务并不重要。重要的是每个服务只能使用一个唯一的客户端 ID。
我想到的一个可能的解决方案是使用 SQL Table 来存储客户端 ID,以及一个包含 "IsTaken" 的列。每个服务锁定其他服务访问 table,然后取一个未使用的客户端 ID,并将 IsTaken 值更改为 true。
还有其他方法可以解决这个问题吗?也许是专门用于在多个 Web 服务之间同步配置的特定工具?提前致谢。
您还可以为每个客户端创建一个应用程序实例。与将客户端 ID 注册为 URL 一部分的服务实例相结合。
所以你会得到类似的东西:
- https://example.com/appX-clientA/service
- https://example.com/appX-clientB/service
- https://example.com/appX-clientC/service
您可以将其配置为根据需要创建任意数量的实例。使用内置的反向代理从外部世界访问它们。
如果我没理解错你的需求,你可以使用actor模型实现服务,使用clientId作为实例id。在actor模型中,集群中每个instanceId只有一个实例created/running。 Actor 是单线程执行模型中独立的逻辑和状态单元。