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