Azure Service Fabric:如何从名称服务枚举应用程序中的所有服务

Azure Service Fabric: How to enumerate all services in an application from the Name Service

我有一个简单的无状态服务,需要对同一应用程序中的每个其他服务进行远程调用。与其硬编码应用程序中所有其他服务的列表,不如从名称服务(或可以发现它的任何其他地方)获取所有服务的枚举。然后我的代码将是通用的,并且在我将来向应用程序添加新服务时继续工作而无需更改。

但我找不到任何说明此枚举功能的文档或示例。这可能吗?

是的,您可以使用 FabricClient.QueryClient class 及其 GetServiceListAsync 方法:

using(var fabricClient = new FabricClient())
{
    var serviceList = await fabricClient.QueryManager.GetServiceListAsync(appUri);
    // ...
}

这里是相关的documentation