Ahm*_*gle 3 azure azure-worker-roles azure-web-roles azure-virtual-network
通过获取所有这些实例所监听的特定端点的VIP(虚拟IP)地址,同一角色的多个角色实例是否可以相互通信RoleEnvironment?如果是这样,则返回VIP可以对调用者(RoleEnvironment方法)实例本身进行负载均衡.
角色实例可以通过内部端点相互通信.与输入端点不同,它们仅对部署中的其他实例可见(无论角色如何).
通过内部端点直接通信,完全绕过外部VIP负载均衡器.因此,如果您有三个正在尝试连接的辅助角色实例(例如,您的REST服务所在的实例),则必须在3个实例之间进行自己的负载平衡.
使用内部端点与输入端点一样简单.首先设置一个:

然后随意抓一个.例如(最粗略的意思):
var random = new Random();
var role = RoleEnvironment.Roles["WorkerRole1"];
var instanceNumber = random.Next() % role.Instances.Count;
var ipendpoint = role.Instances[instanceNumber].InstanceEndpoints["myservice"].IPEndpoint;
var address = ipendpoint.Address;
var port = ipendpoint.Port;
Run Code Online (Sandbox Code Playgroud)
注意:您仍然可以从任何角色到任何角色的输入端点.此时,您将像来自外部世界的任何其他流量一样进行负载平衡.而且你也必须担心安全问题(而内部端点却没有).
| 归档时间: |
|
| 查看次数: |
1950 次 |
| 最近记录: |