在 Service Fabric 中使用参数创建服务实例
Create service instances with parameters in Service Fabric
我在 Azure 上的一个项目中使用 Service Fabric,简而言之,我有一个服务,其功能是从 IoT 中心读取数据。
就目前而言,该服务正在同时从 32 个分区读取数据(多线程),但我正在尝试将其重构为每个分区一个服务实例。问题是我找不到一种方法来创建 32 个服务实例并通知它应该读取的 Hub 分区的每个实例(也许是参数?)。
如果需要,我可以提供代码示例,但我觉得这个问题不言自明。
您可以创建具有 32 个分区的有状态服务。服务中的每个分区将从 IoT 中心的单个分区读取。您也可以将其作为具有 32 个实例的后台工作者(不是 Web api)的无状态服务来执行。您需要某种方式来协调哪个 instance/partition 正在与每个 IoT 分区进行通信。
如果您坚持要有 32 个服务实例,那么您只需要确保每个服务实例都有一个唯一的名称。您可以将这些服务放在 ApplicationManifest 的部分:
<DefaultServices>
<Service Name="Service01">
<StatelessService ServiceTypeName="MyServiceType" InstanceCount="1">
<SingletonPartition />
</StatelessService>
</Service>
<Service Name="Service02">
<StatelessService ServiceTypeName="MyServiceType" InstanceCount="1">
<SingletonPartition />
</StatelessService>
</Service>
...
</DefaultServices>
我在 Azure 上的一个项目中使用 Service Fabric,简而言之,我有一个服务,其功能是从 IoT 中心读取数据。
就目前而言,该服务正在同时从 32 个分区读取数据(多线程),但我正在尝试将其重构为每个分区一个服务实例。问题是我找不到一种方法来创建 32 个服务实例并通知它应该读取的 Hub 分区的每个实例(也许是参数?)。
如果需要,我可以提供代码示例,但我觉得这个问题不言自明。
您可以创建具有 32 个分区的有状态服务。服务中的每个分区将从 IoT 中心的单个分区读取。您也可以将其作为具有 32 个实例的后台工作者(不是 Web api)的无状态服务来执行。您需要某种方式来协调哪个 instance/partition 正在与每个 IoT 分区进行通信。
如果您坚持要有 32 个服务实例,那么您只需要确保每个服务实例都有一个唯一的名称。您可以将这些服务放在 ApplicationManifest 的部分:
<DefaultServices>
<Service Name="Service01">
<StatelessService ServiceTypeName="MyServiceType" InstanceCount="1">
<SingletonPartition />
</StatelessService>
</Service>
<Service Name="Service02">
<StatelessService ServiceTypeName="MyServiceType" InstanceCount="1">
<SingletonPartition />
</StatelessService>
</Service>
...
</DefaultServices>