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