1
나는 여러 개의 분할 된 상태 저장 서비스를 가지고 있습니다. 클라이언트와 서비스 간의 통신을 위해 service remoting을 사용하여 어떻게 모든 파티션을 열거하고 결과를 집계 할 수 있습니까?모든 파티션을 열거하고 결과를 집계하는 방법
나는 여러 개의 분할 된 상태 저장 서비스를 가지고 있습니다. 클라이언트와 서비스 간의 통신을 위해 service remoting을 사용하여 어떻게 모든 파티션을 열거하고 결과를 집계 할 수 있습니까?모든 파티션을 열거하고 결과를 집계하는 방법
당신은 FabricClient
를 사용하여 파티션을 열거 할 수
var serviceName = new Uri("fabric:/MyApp/MyService");
using (var client = new FabricClient())
{
var partitions = await client.QueryManager.GetPartitionListAsync(serviceName);
foreach (var partition in partitions)
{
Debug.Assert(partition.PartitionInformation.Kind == ServicePartitionKind.Int64Range);
var partitionInformation = (Int64RangePartitionInformation)partition.PartitionInformation;
var proxy = ServiceProxy.Create<IMyService>(serviceName, new ServicePartitionKey(partitionInformation.LowKey));
// TODO: call service
}
}
주 당신은 아마 GetPartitionListAsync
의 결과를 캐시해야하는 서비스 파티션이 서비스를 다시없이 변경 될 수 없기 때문에 (당신은 단지 LowKey
값 목록을 유지할 수 있습니다).
또한 FabricClient
도 가능한 한 많이 공유해야합니다 (documentation 참조).
'LowKey'값의 목록을 유지하는 것이 좋습니다. 고마워. –
"FabricClient"를 "공유하는"의미는 무엇입니까? – jugg1es
@ jugg1es 매번 새로운 것을 생성하는 대신에, 'FabricClient'의 인스턴스를 재사용한다는 의미입니다. –