Pet*_*lly 102 ping availability
在我的应用程序中,我正在 ping 服务器并等待响应。我正在使用它来确定服务器是否可用且是否响应。
这是确定可用性的可靠方法吗?我假设防火墙可能会过滤 icmp 流量......还有其他缺点吗?有没有更靠谱的方法?
Cho*_*er3 144
判断任何给定的远程服务是否处于活动状态的最佳方法是要求它以预期的方式为请求提供服务 - 事实上,这是真正知道某些东西是否正常工作的唯一方法。
作为一个例子,我总是让我的负载平衡器从我们的网络服务器获得一个实际的“头部”响应,如果你愿意,你可以对数据库框上的一个小选择或者你的实际服务器提供的任何东西做同样的事情。作为提示,您可以在您的 Web 服务器上创建一个“online.txt”(或您想给它的任何名称),让您的 LB 尝试获取该文件,如果失败,则它会从 VIP 中删除服务器,这是一种通过重命名单个文件手动从 VIP 中删除单个服务器的好方法。
Ping 仅测试响应 ping 的能力,因此这是基本操作系统、IP 堆栈的一部分和物理链接 - 但仅此而已,其他一切都可能会出现故障,而您不知道。
我知道下面提到了这一点,但它值得一再重复。
ICMP 回声请求(又名“Pings”)(又名 ICMP 类型 8)构建在 IP 堆栈规范中,是的,但不需要实现或使用。事实上,有大量的互联网提供商拒绝转发这些请求并默默地丢弃这些请求,因为它们是一种网络攻击(称为 pingflood)。
如上所述,这由操作系统处理(特别是在网络堆栈级别),因此是否响应这些取决于操作系统配置。如果关闭此功能(安全预防措施?),您将无法从另一端接收 ping 回复。这就是它不可靠的原因。
| 归档时间: |
|
| 查看次数: |
109194 次 |
| 最近记录: |