我创建了一个托管服务,其中包含两个角色 - 一个Web角色和一个辅助角色。我想使用ZeroMQ在内部进行角色之间的通信(我计划创建一堆这样的托管服务,每个服务中要处理的数据略有不同)。我想知道如何从Web角色中找出worker角色的内部IP地址,反之亦然,以便我可以在ZMQ的connect()中使用它们。这有可能吗?
答案 0 :(得分: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;
}
}
}