我目前正在使用MS Azure上的VM实例构build一个小型Web部署。 我目前面临的主要问题是试图找出如何通过负载平衡来检测特定虚拟机是否发生故障,而不是将stream量路由到该虚拟机。
据我所知,只有两个负载平衡选项:
在单个VIP后面的同一个“云服务”中有多个虚拟机(web01,web02,web03等),并configuration端点负载均衡。
创build多个“云服务”,在每个虚拟机中放置一个Web虚拟机,并在所有这些服务中创build一个stream量pipe理器服务。
看起来(1)非常简单,不会尝试做任何主机故障检测。
(2)似乎更加多样化,但要求我把我所有的networking服务器放在他们自己的个人云服务中。 stream量pipe理器似乎更直接针对地理故障转移情况,在这种情况下,您在不同地区拥有多个云服务。 这种方法还有一个缺点,就是我的networking服务器不能和内部IP地址上的数据库进行通信,不像情况(1)。
这里最好的办法是什么?
每个云服务虚拟机都安装了一个来宾代理(GA),用于监控虚拟机的运行状况。 如果GA无法响应,则Fabfic控制器(FC)将重新启动虚拟机。 在发生硬件故障的情况下,FC会将angular色实例移动到新的硬件节点,并重新编程服务angular色实例的networkingconfiguration,以将服务恢复到完全可用状态。
编辑:来宾代理仅在PaaS上使用。 IaaS(Azure上的虚拟机)没有Guest Agent。