我需要跟踪应用程序是否在网络服务器上运行。为此,我编写了一个java应用程序,它将http请求发送到服务器并根据响应跟踪应用程序是否正在运行。现在我有负载平衡器,它在运行相同应用程序的 3 个服务器之间平衡负载,并且我发送相同的请求,那么如何找出我从中获取响应的计算机的 IP,以便我可以跟踪应用程序是否正在运行是否有该服务器。我的应用程序将在所有服务器都运行的本地网络中运行。 希望我能够解释我的问题。
最佳答案
如果执行检查的代码与应用程序服务器在同一本地网络中运行,我建议您完全绕过负载均衡器进行此检查,并直接向 3 个应用程序服务器执行 http 请求。
通常您有两种检查:
- 在本地生产网络中进行一次检查(在任何负载均衡器、代理等之前)
- 另一个通过互联网确保实际用户可以访问该应用程序:这更像是一种端到端检查,如果您的连接、负载平衡器或任何其他元素出现故障,它还会向您发出警告。
如果你真的无法向真正的应用程序服务器发出请求,恐怕这通常是不可能的:如果做得正确,负载平衡通常对 http 客户端来说是完全透明的。您可能想查看this answer on security stackexchange了解更多详情。
关于java - 跟踪 Web 服务器上运行的应用程序的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22089940/