我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎么检测Web服务请求丢失问题

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎么检测Web服务请求丢失问题

这篇文章主要介绍“怎么检测Web服务请求丢失问题”,在日常操作中,相信很多人在怎么检测Web服务请求丢失问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么检测Web服务请求丢失问题”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

问题描述

最近偶尔有用户反馈某些 HTTP 接口出现超时问题,而 web 服务端的 Trace 监控没有出现 http 返回值为 503 等异常情况。出现这种情况一般是web容器出现问题,客户端连接不上来。本文将主要介绍如何去监控这类问题。

我们是用典型的 Web 服务架构,应用通过域名访问到我们的 LVS(Linux Virtual Server)机器,LVS 后面对应了多台 Web 服务器。

考虑到无法对 LVS 进行跟踪,而 Web 服务器(Tomcat 上出现堆积,无法评估影响范围)。考虑再三后,我们准备在Tomcat 和 LVS 上加一个 Nginx,用于追踪用户访问的真实情况。Nginx 是一款自由、开源的高性能 HTTP 服务器。通过 Nginx 代码,我们可以掌握第一手的用户访问的真实情况,本来是打算通过 Nginx 的 Access 日志来做统计, 后来参考 阿里云链路追踪的文档,用链路追踪可以把 HTTP 的埋点和 Tomcat 连起来看,可以更详情地发现问题。

环境准备和问题复现编译安装 Nginx 和 Jaeger Agent,具体的安装过程可以参考 阿里云链路追踪文档。 测试环境:需要重现超时问题,写了一个小程序,开启 200 个线程,每个线程连续向服务发送 500 个请求。总共提交 100000 个请求。

排查过程

排查的主题思路, 对比 Web 服务端数据和 Nginx 服务端的链路统计数据,如果两种的请求数不一致,那可以确定有请求丢失。再根据链路上的详情数据来确定丢失请求的原因。

1、Web 服务端数据统计

发送请求后,发现 web 服务端一共处理 98717 个请求,比客户端少了 1283 个请求。

2、Nginx 服务端统计

查看 Nginx 的请求,一共有 100000 个请求,说明 Nginx 收到了全部请求,但是进入到 Web 服务上处理的只有 98717 个请求(通过 javax.servlet.Filter 埋点来监控)。

3、问题分析

检查 Nginx 服务,发现 Nginx 的有些请求的 HTTP 的返回码 499。如下图所示:

对比正常的 HTTP 链路,发现 Nginx 的请求的 HTTP 的返回码 499,只有一个 Span 就返回了,而 HTTP 返回码为 200 的,可以看到完整的调用链路(链路上除了 Nginx 的 Span,还有 Web服务的 Span),如下图展示:

我们可以这样来解释这个问题,客户端流量进入 Web 服务器,如果 Web 服务器处理不过来(超出可承受的最大流量或者 Web 服务器本身可能出现 FullGC,OOM,死锁,线程池慢问题), 那客户端设置超时的请求将会出现 499,未进入 javax.servlet.Filter 处理,Web 服务端看不到任何访问记录。

那是不是可以认为出现 HTTP 返回值为 499 的请求都是服务端处理失败的请求?

4、进一步排查

我们捞取下 Nginx 上返回 499 的请求,总共 2719条,大于 Web 服务丢失的 1283 个请求。这个数据对不上,是什么原因呢?我们在仔细查看了下数据,有 Nginx 返回 499 的请求,但是 Web 服务返回了 200。这些请求进入 Web 服务处理程序,但是 Web 服务还没返回就超时了。如果没有 Tracing 把上下文链接起来,我们很难通过 Nginx 日志或者 Web 服务日志来解释这个问题(一个请求,Nginx 返回 499,而 Web 服务返回 200),如下图所示:

把 Nginx 和 Web 容器服务(Tomcat)的链路打通,我们可以查看 HTTP 请求每个环节的状态,很方便地定位问题。

到此,关于“怎么检测Web服务请求丢失问题”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

怎么检测Web服务请求丢失问题

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

怎么解决php curl请求失败问题

本篇内容介绍了“怎么解决php curl请求失败问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!php curl请求失败的解决办法:1、打
2023-06-22

亚马逊服务器主机丢失怎么解决问题

检查主机IP地址:首先要检查亚马逊服务器主机的IP地址是否正确设置,以确保正确连接到服务器。检查网络连接:检查服务器与其他网络设备的连接是否正常,如网线、路由器等。检查防火墙设置:检查防火墙是否阻止了服务器与其他设备的连接,如果是,则需要更新防火墙设置。检查SSL证书:如果SSL证书未生效,则需要检查SSL证书是否已经过期或者是否被更换。检查备份文件:检查服务器上的备份文件是否被正确备份,并且是否...
2023-10-27

DNS服务器检测失败怎么解决

如果DNS服务器检测失败,可以尝试以下解决方法:1. 检查网络连接:确保计算机与网络连接正常。可以尝试重新启动计算机、调整网络连接或连接到其他网络。2. 检查DNS服务器设置:确认DNS服务器设置是否正确,可以尝试使用其他公共DNS服务器。
2023-08-14

租用服务器发生数据丢失问题怎么解决

租用服务器发生数据丢失问题可能是由多种原因引起的,例如硬件故障、人为操作失误、网络问题等。以下是一些解决方法:数据备份:在租用服务器上定期进行数据备份是最有效的预防措施。备份数据可以帮助您在发生数据丢失时快速恢复数据。数据恢复工具:如果数据
租用服务器发生数据丢失问题怎么解决
2024-04-23

亚马逊服务器跨域请求失败怎么办

1.了解跨域请求在开始解决亚马逊服务器跨域请求失败的问题之前,我们需要先了解什么是跨域请求。跨域请求是指在一个域名下的网页请求另一个域名下的资源,例如在www.example.com下的网页请求api.example.com下的数据。由于浏览器的同源策略,跨域请求会被浏览器拦截,从而导致请求失败。2.解决方案2.1JSONPJSONP是一种跨域请求的解决方案,它利用了script标签不受同源策略限制的特性。具体实现方式是在客户端创建一个scr...
2023-10-27

亚马逊服务器未检测到硬盘怎么解决呢问题

1.确认硬盘是否正确安装首先,您需要确认硬盘是否正确安装。您可以检查硬盘的电源和数据线是否连接到服务器上,并且确认硬盘是否被正确地安装在服务器的硬盘槽中。如果硬盘没有被正确地安装,服务器将无法检测到硬盘。2.检查硬盘是否被识别如果硬盘已经正确安装,但服务器仍然无法检测到硬盘,您需要检查服务器是否能够识别硬盘。您可以通过进入服务器的BIOS设置来检查硬盘是否被识别。如果硬盘没有被识别,您需要手动添加硬盘...
2023-10-27

亚马逊服务器跨域请求失败怎么解决

1.了解跨域请求跨域请求是指在一个域名下的网页请求另一个域名下的资源,例如在www.example.com下的网页请求api.example.com下的数据。由于浏览器的同源策略,跨域请求会被浏览器拦截,导致请求失败。2.解决跨域请求失败的方法2.1JSONPJSONP是一种跨域请求的解决方案,它利用了script标签不受同源策略限制的特性。具体实现方式是在客户端创建一个script标签,将请求的URL作为script标签的src属性值,服务器返回的数据...
2023-10-27

亚马逊服务器跨域请求失败怎么回事

亚马逊服务器跨域请求失败可能是由于以下原因导致的:服务器端未设置允许跨域访问的响应头。在服务器端设置Access-Control-Allow-Origin响应头,允许指定的域名或所有域名进行跨域访问。请求头中未设置允许跨域访问的请求头。在客户端设置请求头,包括Access-Control-Allow-Origin、Access-Control-Allow-Methods、Access-Control-Allow-Headers等,以允许跨域请求。客户端请求的协议、域名或端口与服务器端不一致...
2023-10-27

亚马逊服务器未检测到硬盘怎么解决问题呢苹果

1.检查硬盘的连接:检查硬盘的连接线是否插好,检查硬盘数据线是否接好,并确保所有数据线连接正常。2.检查硬盘的状态:打开“计算机”,在左下角点击“设备管理器”,进入“硬盘控制器”界面,查看硬盘状态,如果没有检测到硬盘,可以尝试重新启动电脑或者重启设备。3.尝试更新驱动程序:如果以上方法无法解决问题,可以尝试更新硬盘的驱动程序,在设备管理器中右键单击已连接的硬盘,选择“属性”,在驱动程序中选择“驱动程
2023-10-27

怎么创建SAP CRM服务请求文档的subject测试数据

本篇内容主要讲解“怎么创建SAP CRM服务请求文档的subject测试数据”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么创建SAP CRM服务请求文档的subject测试数据”吧!Cars
2023-06-04

windows请求的暂停、继续或停止对此服务无效问题怎么解决

这篇文章主要介绍“windows请求的暂停、继续或停止对此服务无效问题怎么解决”,在日常操作中,相信很多人在windows请求的暂停、继续或停止对此服务无效问题怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家
2023-04-22

云服务器交互失败怎么解决问题

1、首先检查网络连接是否正常,确保连接是可靠的;2、尝试使用其他网络IP,确保服务器和其他网络之间的网络环境没有冲突;3、确保服务器已经开启远程登录,并且没有被关闭;4、检查云服务器是否处于开启状态,并且已正确配置;5、尝试使用ssh登录,尝试使用22号端口号进行远程控制;6、检查服务器内部是否中毒了、防护软件是否禁ping,如果有,应及时处理;7、检查服务器的硬件设备是否正常,如电源、硬盘等;8、检查服务器的网络...
2023-10-27

Go语言单元测试怎么实现服务请求和接口返回

这篇“Go语言单元测试怎么实现服务请求和接口返回”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Go语言单元测试怎么实现服务请
2023-07-02

亚马逊服务器不能访问外部请求怎么办呀

权限不足:检查您的帐户是否已获得足够的权限来访问外部资源。如果权限不足,您可能无法访问外部资源。硬件故障:如果服务器硬件出现故障,例如服务器过载、内存不足或硬盘故障,可能会导致无法访问外部资源。网络故障:如果您的网络连接不稳定或速度较慢,也可能导致无法访问外部资源。安全漏洞:亚马逊可能已经发现了安全漏洞,这可能导致您的服务器受到攻击。在这种情况下,您需要采取额外的安全措施来保护自己。如果您的服务器...
2023-10-27

亚马逊服务器不能访问外部请求怎么办呢苹果

苹果公司的服务器也可能受到安全限制的影响,这是因为它的安全策略可能不允许外部访问服务器的任何数据和系统。为了解决这个问题,苹果公司可以监测安全策略,确保它可以正确地执行安全策略,并定期更新和测试它的系统。如果苹果公司的服务器仍然不能访问外部请求,它可以与苹果公司联系,以了解安全限制的原因,并寻求解决方案。
2023-10-27

编程热搜

目录