在典型的负载均衡器 + Tomcat 应用服务器环境中,如何有效地确定服务是否启动?
目前,负载均衡器正在对应用服务器的 /service 端点进行 TCP 检查,如果得到 200,则假定节点已启动并提供服务。但有没有有效的方法呢?
答案1
这通常是完成应用程序的 TCP 或更可能是 HTTP/S 检查的方式。
您可以提供一个始终访问关键组件和系统的 URL/端点。例如,它可以
- 检查是否可以访问 Web 服务器
- Web 服务器反向代理到应用服务器
- 应用服务器测试代码检查:a)数据库是否返回应返回的内容,b)缓存引擎是否正常工作,c)任何集成系统是否做出适当响应。
如果您不检查整个堆栈,那么这不是一个特别有效的健康检查。
您可以阅读 AWS Elastic Load Balancer 的工作原理健康检查,它使用了这种技术。