同一角色的多个角色实例是否可以通过获取所有这些实例侦听的特定端点的 VIP(虚拟 IP)地址来相互通信RoleEnvironment
?如果是这样,返回的 VIP 可以负载均衡到调用者(的RoleEnvironment
方法)实例本身。
角色实例可以通过内部端点相互通信。与输入端点不同,它们仅对部署中的其他实例可见(无论角色如何)。
通过内部端点直接对话,完全绕过外部 VIP 负载均衡器。因此,如果您尝试连接到三个辅助角色实例(假设这是您的 REST 服务所在的位置),则您必须在这 3 个实例之间进行自己的负载平衡。
Working with internal endpoints is just as straightforward as input endpoints. First set one up:
然后随机抓一张。例如(从这个词最粗略的意义上来说):
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;
注意:您仍然可以从任何角色访问任何角色的输入端点。那时,您将像来自外部世界的任何其他流量一样实现负载平衡。而且您还必须担心安全性(而对于内部端点则不必担心)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)