1

在 Azure 中,我有一个公开的 webrole 和 2 个只能在专用网络中访问的 workerrole。现在我想在内部对工作角色进行负载平衡,所以我为工作角色设置了一个内部端点,但是我应该使用什么地址与工作人员通信,它不能是内部 IP 地址,因为它特定于特定实例并且不会'不通过负载平衡器对吗?

多谢!

4

4 回答 4

1

Windows Azure 中没有内部负载平衡器。唯一的负载均衡器是具有公共 IP 地址的负载均衡器。

如果您只想对内部地址(工作人员)进行负载平衡,您必须自己维护它。这意味着您必须在 Azure VM 上安装某种负载均衡器,它是同一个 VNet 的一部分。该负载平衡器可能是您的选择(Windows 或 Linux)。当拓扑发生变化时,你必须实现一个看门狗服务——即工人被回收、硬件故障、扩展事件。除非绝对必要,否则我不会推荐这种方法。

最后一个选项是拥有所有工作人员的(缓存)IP Endpints 池,并在需要时随机选择一个。

于 2013-07-25T06:32:58.127 回答
1

基于 Azure 的内部负载均衡器 (ILB) 自 2014 年 5 月 20 日星期二起可用。

http://azure.microsoft.com/blog/2014/05/20/internal-load-balancing/

可用于 SQL AlwaysON 部署和发布以及仅可从您的 VNET 访问的内部端点(即不可公共路由)。

注意:搜索 ILB 帮助并发现此线程。认为值得更新,如果不让我知道,我会删除。

于 2015-03-20T13:44:05.020 回答
0

您可以配置您的 IISWebRole以充当Reverse Proxy您的角色,Application Request Routing然后使用您选择的算法将其规则配置为负载平衡请求。

最简单的方法是修改您WebRole.cs以获取您的(内部)端点列表,WorkerRole然后以编程方式添加它(参见此处的示例)。

或者,您可以使用启动脚本来调用appcmd以实现相同的结果。

最后,您必须更改客户端设置以将请求指向(代理的)IIS 端点,而不是常规的 WorkerRole 端点。

于 2013-07-25T07:41:02.490 回答
0

请注意,Azure 现在支持内部负载平衡 (ILB)。

http://azure.microsoft.com/blog/2014/05/20/internal-load-balancing

于 2015-01-19T22:36:16.553 回答