在Azure中,我有一个公开的webrole和2个只能在专用网络中访问的workerrole。现在我想在内部对workerroles进行负载均衡,所以我为workerroles设置了一个内部端点,但是我应该用什么地址与worker进行通信,它不能是内部IP地址,因为它特定于某个特定实例而且不会没有经过负载均衡器吗?
很多!
答案 0 :(得分:1)
Windows Azure中没有内部负载均衡器。唯一的负载均衡器是具有公共IP地址的负载均衡器。
如果您只想对内部地址(工作人员)进行负载均衡,则必须自行维护。这意味着您必须在Azure VM上安装某种负载均衡器,Azure VM是同一VNet的一部分。您可以选择该负载均衡器(Windows或Linux)。并且您必须在拓扑更改时实施监视程序服务 - 即工作程序正在被回收,硬件故障,扩展事件。除非绝对必要,否则我不会推荐这种方法。
最后一个选项是拥有一个(缓存的)所有工作人员的IP Endpints池,并在您需要时随机选择一个。
答案 1 :(得分:1)
基于Azure的内部负载均衡器(ILB)自2014年5月20日星期二起可用。
http://azure.microsoft.com/blog/2014/05/20/internal-load-balancing/
可用于SQL AlwaysON部署和发布以及只能从VNET访问的内部端点(即不可公共路由)。
注意:搜索ILB帮助并发现此线程。认为值得更新,如果不让我知道,我会删除。
答案 2 :(得分:0)
您可以使用WebRole
为Reverse Proxy
配置IIS以充当Application Request Routing
,然后使用您选择的算法将其配置为负载均衡请求。
最简单的方法是修改WebRole.cs
以获取WorkerRole
的(内部)端点列表,然后以编程方式添加(请参阅示例here)。
或者,您可以使用Startup-Script调用appcmd
以获得相同的结果。
最后,您必须更改客户端设置以将请求指向(代理的)IIS端点而不是常规的WorkerRole端点。
答案 3 :(得分:0)
请注意,Azure现在支持内部负载平衡(ILB)。
http://azure.microsoft.com/blog/2014/05/20/internal-load-balancing