返回顶部
首页 > 资讯 > 数据库 >怎么检测Web服务请求丢失问题
  • 871
分享到

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

2024-04-02 19:04:59 871人浏览 八月长安
摘要

这篇文章主要介绍“怎么检测WEB服务请求丢失问题”,在日常操作中,相信很多人在怎么检测Web服务请求丢失问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么检测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服务请求丢失问题”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

您可能感兴趣的文档:

--结束END--

本文标题: 怎么检测Web服务请求丢失问题

本文链接: https://lsjlt.com/news/70847.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么检测Web服务请求丢失问题
    这篇文章主要介绍“怎么检测Web服务请求丢失问题”,在日常操作中,相信很多人在怎么检测Web服务请求丢失问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么检测Web服务请...
    99+
    2024-04-02
  • 如何解决php 请求丢失问题
    本文操作环境:Windows7系统、PHP7.1版、DELL G3电脑如何解决php 请求丢失问题?php curl post请求丢失'+'问题背景: 使用与友商做免登录授权的跳转,发现授权偶尔失败,经过日志查看,加密码中带...
    99+
    2017-06-12
    php
  • 怎么解决php curl请求失败问题
    本篇内容介绍了“怎么解决php curl请求失败问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!php curl请求失败的解决办法:1、打...
    99+
    2023-06-22
  • 如何解决ajax跨域请求数据cookie丢失的问题
    本篇内容介绍了“如何解决ajax跨域请求数据cookie丢失的问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有...
    99+
    2024-04-02
  • OpenFeign调用服务请求头丢失Token的解决
    OpenFeign调用服务请求头丢失Token 导致原因: 解决方案: 代码实现 @Configuration @Slf4j public class FeignConfig...
    99+
    2024-04-02
  • nginx反向代理请求参数丢失怎么办
    当nginx作为反向代理时,如果请求参数丢失,可以考虑以下几个方面进行排查和解决: 检查upstream的配置:确保upstrea...
    99+
    2023-10-22
    nginx
  • 怎么解决curl php post 丢失问题
    本篇内容主要讲解“怎么解决curl php post 丢失问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么解决curl php post 丢失问题”吧!php curl post数据丢失是...
    99+
    2023-06-20
  • 亚马逊服务器主机丢失怎么解决问题
    检查主机IP地址:首先要检查亚马逊服务器主机的IP地址是否正确设置,以确保正确连接到服务器。 检查网络连接:检查服务器与其他网络设备的连接是否正常,如网线、路由器等。 检查防火墙设置:检查防火墙是否阻止了服务器与其他设备的连接,如果是,则...
    99+
    2023-10-27
    亚马逊 解决问题 主机
  • 如何解决Oracle服务丢失的问题?
    解决Oracle服务丢失的问题 Oracle数据库是众多企业和组织首选的关系型数据库管理系统,但在实际使用过程中,有时会遇到数据库服务丢失的情况,影响系统正常运行。本文将介绍如何解决O...
    99+
    2024-03-08
    数据备份 日志监控 服务恢复 数据丢失
  • DNS服务器检测失败怎么解决
    如果DNS服务器检测失败,可以尝试以下解决方法:1. 检查网络连接:确保计算机与网络连接正常。可以尝试重新启动计算机、调整网络连接或...
    99+
    2023-08-14
    DNS服务器 服务器
  • 怎样防止租用服务器数据丢失问题
    防止租用服务器数据丢失问题的方法:1、给服务器采用raid磁盘阵列来进行相应的存储工作,从而提高数据传输容错率;2、需要定期做好数据备份,防止数据丢失无法恢复;3、需要注意减少非必要错误的操作,避免因人为操作失误导致数据丢失无法恢复;4、当...
    99+
    2024-04-02
  • 租用美国服务器怎么防止数据丢失问题
    租用美国服务器防止数据丢失的方法:1、采用raid磁盘阵列存储;2、定期对美国服务器进行数据备份;3、减少美国服务器中一些非必要错误的操作;4、出现故障时,不懂不要盲目操作美国服务器,应交由专业技术人员处理。具体内容如下:采用raid磁盘阵...
    99+
    2024-04-02
  • 租用服务器发生数据丢失问题怎么解决
    租用服务器发生数据丢失问题可能是由多种原因引起的,例如硬件故障、人为操作失误、网络问题等。以下是一些解决方法: 数据备份:在租用...
    99+
    2024-04-23
    服务器
  • vue中this.$http.post()跨域和请求参数丢失怎么解决
    今天小编给大家分享一下vue中this.$http.post()跨域和请求参数丢失怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来...
    99+
    2023-06-29
  • 解决在微服务环境下远程调用feign和异步线程存在请求数据丢失问题
    目录一、无异步线程得情况下feign远程调用:1、登录拦截器:2.问题示例图:3.解决方法:解决方式(高亮部分):从总线中获取request数据放入子线程中二、异步情况下丢失上下文问...
    99+
    2024-04-02
  • 怎么解决php字节丢失乱码问题
    这篇文章主要介绍怎么解决php字节丢失乱码问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!php字节丢失乱码的解决办法:1、使用“mb_substr($str, 0, 1, 'gbk');...
    99+
    2023-06-22
  • PHP文件在Apache服务器中丢失的问题
    PHP文件在Apache服务器中丢失的问题,需要具体代码示例 在Web开发过程中,经常会遇到PHP文件在Apache服务器中丢失的问题。这种问题可能由于配置错误、权限问题或其他原因导致...
    99+
    2024-04-02
  • Springboot怎么解决跨域请求问题
    这篇文章主要介绍“Springboot怎么解决跨域请求问题”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Springboot怎么解决跨域请求问题”文章能帮助大家解决问题。1、什么是跨域由于浏览器同源...
    99+
    2023-07-06
  • 服务器诡异的请求超时问题
    前些日子,监控显示线上偶尔发生请求两秒超时的情况。解决这个问题前前后后花了不少时间,也走了一些弯路。这里记录下来备忘。 前期分析 首先需要了解一下我们的服务: 我们的服务是一组无状态的前端服务器加上有状态的后端存储层。 这...
    99+
    2016-05-01
    服务器诡异的请求超时问题
  • MongoDB怎么检测和解决死锁问题
    在MongoDB中,死锁问题通常是由于并发操作导致的,解决死锁问题通常需要对数据库的设计和应用程序的并发控制进行优化。 以下是一些检...
    99+
    2024-04-19
    MongoDB
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作