今天阳光明媚,天气正好,心情很是美丽。

但是业务同学突然说生产环境出bug了。

对不起,收回前言,感觉是台风过境。。

查了一下,报413错误,表示http请求实体太大。

此错误通常出现在使用http请求进行文件上传的时候,因为上传文件容易出现大文件,比如超过5m的。

但是今天导致这个问题的是因为前端post请求发送的json对象太“大”了,108k左右,排查了一下,感觉很奇怪,报文体小一点,90多k,没问题,100多k就有问题,100k左右应该就是出现问题的分界线。

看了一下没有日志产生,基本可以确定不是后台代码的问题。

分析了一下http请求经过的路径节点:

**前端请求**——>**node服务转发**——>**跳板机**——>**Nginx转发**——>**后台Tomcat服务**——>**后台代码**

第一反应是会不会是因为Nginx的配置导致的,记得之前有一次上传文件也报413,就是因为文件大小是8M,超出了Nginx配置的上限导致的。

于是第一时间联系了ops,他们查看结果是:

client_max_body_size 5M;(请求体缓存区大小)

client_body_buffer_size 128k;(客户端请求体缓冲区大小)

所以没有问题,为了保险起见,client_max_body_size修改为20M,但是问题还存在,所以并不是Nginx配置的问题。

这是我的注意力赚到了Tomcat,Tomcat的server.xml中,maxPostSize参数会限制post请求报文体的最大值,继续麻烦ops,发现server.xml中并没有配置这个参数,查了一下,没有配置的时候,默认值是2M(2097152 (2 megabytes).),也没有问题。。。

emmmmmm。。。。

因为前后端分离,不太清楚前端的实现会不会限制post报文体大小,虽然我很自信后端代码不会有问题,但还是先用postman测试了后端,发现即使是1M的数据,也没得问题。

所以,结果很明显了,问题基本出现在前端请求、node服务转发、跳板机三个位置。

找了前端同学了解了一下,原来他们node服务使用Egg.js框架,而Egg的配置jsonLimit,会限制json报文体的大小,如果没有配置的话,默认为100k。

修改为5M以后,问题解决。

完美。

java 413错误,413错误——线上bug历险记相关推荐

  1. 走完线上 BUG 定位最后一公里

    简介:因为线上线下环境隔离的问题,线上的输入很多时候难以在日常环境中构造,定位 bug 效率低下.是否有简单快捷的办法呢? 一个小故事 周末12点的闹钟在回龙观均价3000的出租屋急促的响起,程序员小 ...

  2. 线上BUG 处理并分析原因

    昨天下午大神把组内几十号人召集在一起开Online bug分析大会,主要是针对近期线上事故从事故原因和解决方案两个维度来分析 对金融软件来说,每一次的线上事故都有可能给公司带来重大的损失,少扣了用户的 ...

  3. 测试金融软件出现线上bug的原因及解决方法

    小编热衷于收集整理资源,记录踩坑到爬坑的过程.希望能把自己所学,实际工作中使用的技术.学习方法.心得及踩过的一些坑,记录下来.也希望想做软件测试的你一样,通过我的分享可以少走一些弯路,可以形成一套自己 ...

  4. 听说”双11”是这么解决线上bug的

    听说"双11"是这么解决线上bug的 --Android线上热修复的使用与原理 预备知识和开发环境 Android NDK编程 AndFix浅析 Android线上热修复的原理大同 ...

  5. java河南口腔医疗机构线上服务系统计算机毕业设计MyBatis+系统+LW文档+源码+调试部署

    java河南口腔医疗机构线上服务系统计算机毕业设计MyBatis+系统+LW文档+源码+调试部署 java河南口腔医疗机构线上服务系统计算机毕业设计MyBatis+系统+LW文档+源码+调试部署 本源 ...

  6. Nacos2.0.3版本线上bug导致整个集群挂掉从而导致业务系统挂掉的解决办法

    文章目录 @[toc] 一.问题 二.解决办法 三.项目升级demo及项目nacos配置 3.1 dubbo-demo-producer生产者端项目POM配置 3.2 dubbo-demo-consu ...

  7. 软件测试面试中关于线上bug,线上出现bug测试人员怎么办

    常在河边走,哪能不湿鞋,即使测试在工作中已经小心再小心了,但有时还是可能会出现线上问题,真是个悲伤的故事,然而纵然悲伤也需要有个结局,那么项目上线出现bug,测试人员该肿么办呢? 首先要做的是重现这个 ...

  8. 线上Bug无法复现怎么办?老司机教你一招,SpringBoot远程调试不用愁!

    前言 在部署线上项目时,相信大家都会遇到一个问题,线上的 Bug 但是在本地不会复现,多么无奈. 此时最常用的就是取到前端传递的数据用接口测试工具测试,比如 POSTMAN,复杂不,难受不? 今天陈某 ...

  9. 内存泄漏java例子_一次线上Java应用内存泄漏分析实例

    由于JVM的内存管理采用GC垃圾自动回收机制,这使得Java程序员在编程的时候确实可以从内存管理中释放出来,但这也引发了另外一个大问题,一旦Java应用出现内存泄漏的时候,常常让人措手不及,陷入无从下 ...

最新文章

  1. Linux压缩和解压缩命令集
  2. 皮一皮:老外这是人傻钱多啊...
  3. Linux bind-utils
  4. SLAM: SLAM基本流程—VSLAM扫盲之旅
  5. ASP.Net学习笔记001--ASP.Net简介1
  6. AJAX培训第一讲:AJAX基础
  7. sir模型初始值_经典传染病的SIR模型(基于MATLAB)
  8. STM32F1开发指南笔记20----数码管驱动芯片TM1640解析
  9. Excel 表格打印篇(批量添加标题,同页打印,打印logo与页码)
  10. 使用Java+MapReduce实现热词发现
  11. 关于Shader KeyWord的整理
  12. 定时任务最简单的3种实现方法(超好用)
  13. SCCM 2012 R2部署,SCCM配置(五)
  14. Socket通信实例详解
  15. 倍福--通知方式实现ADS通信
  16. 自述从被坑70000到开工作室月入100000+:我做自动项目这一年辛酸史!
  17. 国内最全的通信运营商5G无线频率分布(含移动电信联通广电铁路)
  18. 小程序申请体验版生成二维码
  19. IP地址和子网掩码计算
  20. Windows10 Docker Desktop启动闪退

热门文章

  1. 使用nano编辑器进行查找和替换
  2. 创意计算机手机,北京市大学生计算机应用大赛——3G智能手机创意设计作品提交书模板(游戏类).doc...
  3. 可视化文本处理模板代码
  4. anchor机制讲解
  5. LruCache的终极解析
  6. 人机猜拳代码python_python 实现人和电脑猜拳的示例代码
  7. Driller工具分析
  8. Java 程序性能优化
  9. 《Java程序性能优化》-笔记
  10. 让WiFi变“4G”?Hotspot2.0来了