0

我创建了一个具有两个角色的托管服务——一个网络角色和一个工作角色。我想使用 ZeroMQ 在内部角色之间进行通信(我计划创建一堆这样的托管服务,每个服务处理的数据略有不同)。我想知道如何从 web 角色中找出工作角色的内部 IP 地址,反之亦然,以便我可以在 ZMQ 的 connect() 中使用它们。这可能吗?

4

1 回答 1

3

是的,这是可能的。您可以通过 RoleEnvironment 访问您的角色,然后您可以访问您的实例、您的端点,...

foreach (var role in RoleEnvironment.Roles)
{
    // Access role.Key to identify the role.

    foreach (var instance in role.Value.Instances)
    {
        // Access instance.Id to identify the instance.

        foreach (var endpoint in instance.InstanceEndpoints)
        {
            // Access endpoint.Key to identify the endpoint.

            System.Net.IPAddress ip = endpoint.Value.IPEndpoint.Address;
            int port = endpoint.Value.IPEndpoint.Port;
        }
    }
}
于 2012-07-30T16:48:15.463 回答