1.要解决的问题
在分配负载进程时,可以在负载均衡器中使用健康检查功能来评估绑定于负载均衡器上的服务器状态。
例如:在一个包含web服务器、代理服务器、应用程序服务器和数据库服务器的配置中,让我们考虑在web服务器之前使用负载均衡器的情况。
负载均衡器能够评估web服务器的状态,并在web服务器出现故障时将其切断。然而,负载均衡器不能识别后端服务器状态,例如代理服务器、应用程序服务器和数据库服务器。
2.云模式的说明
你可以运用云负载均衡器中的健康检查功能,使用PHP、JavaServelet或类似的(程序)建立一个动态页面来执行检查。这个程序可以检查代理服务器、应用程序服务器、数据库服务器等这一类服务器的运行,并将结果返回给负载均衡器。这样就可以将系统作为一个整体进行检查。
3.实施
在AWS中,ELB的健康检查功能对HTTP(S)是否能连接到指定的URL进行了状态检查。使用这一功能,将健康检查的结果指向一个动态页面。
我们将使用一个由web服务器、代理服务器、应用程序服务器和数据库服务器组成的系统来举例说明如何实现。
(步骤)
-
启动ELB,并开启健康检查功能。
-
创建运行在应用服务器上的程序。使其在运行时需要访问数据库。
-
将ELB的健康检查地址设置为此程序的URL。向此URL发出请求来激活这个程序。
-
由ELB执行健康检查。
4.配置
5.好处
-
这使得你可以检查系统运行时所需的所有服务器。
-
根据程序如何响应健康检查,它可能会执行关闭过程(即拒绝请求),也可能会根据失效的细节返回自定义错误信息。
6.注意事项
-
如果有大量的服务器,那么健康检查本身可能会造成网络拥塞,所以必须仔细考虑健康检查的的时机。
-
如果数据库服务器成为单一故障点并发生宕机,这可能会引起一个过度反应而使得所有服务器宕机,这取决于后端服务器检查程序的编写。
-
同时使用数据库复制模式可以防止数据库服务器成为单一故障点。