使用Service Fabric中的参数创建服务实例

时间:2017-07-11 10:09:01

标签: c# azure microservices azure-service-fabric azure-iot-hub

我在Azure上使用Service Fabric来处理工作中的项目,简而言之,我有一项服务,其功能是从IoT Hub读取数据。

就目前而言,该服务同时从32个分区读取数据(多个线程),但我正在尝试将其重构为每个分区的一个服务。问题是我找不到一种方法来创建32个服务实例并通知它应该读取的Hub分区的每个实例(参数可能?)。

如果需要,我可以提供代码示例,但我觉得这个问题非常明显。

1 个答案:

答案 0 :(得分:0)

您可以使用32个分区创建有状态服务。服务中的每个分区都将从IoT中心的单个分区读取。您也可以将此作为无状态服务执行,该服务是具有32个实例的后台工作程序(不是Web API)。您需要某种方式来协调哪个实例/分区与每个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>
相关问题