都是很折腾人很见鬼的bug。
Background
最近做了一个交易中间件项目--这个名字听起来比较高大山。。。就是个大量访问的卖手机流量的交易平台,对接好多客户自动下单,以及自动化处理的上级系统,运行在阿里云上,配置4 cores 8GB Memory。
First thing first
1.阿里云安装MariaDB 10.1.9(后升级到10.1.10仍然没解决),长事物丢数据。
每天凌晨从订单表导入到历史订单表,至少10K数据,然后发现丢数据了。写程序对比了程序输出日志和binlog以及数据库之后发现,sql被完整执行,但是在这个长事物中,innodb在存储的时候会随机少几条,当然也有一天没少...后来尝试了各种方法,几天之后没辙了,切换到RDS;之后再没有过这个问题。
说实话我没怀疑MariaDB,这个bug太弱智了,我是怀疑阿里云的IO有问题。
2.话说切换到RDS之后出现过一次数据不一致的情况,在一个连接里面,行级锁锁定一个客户记录,然后查客户余额,然后根据余额情况来决定是否做某些逻辑,然后修改余额(用update语句直接修改),结果发现查询出来一个一小时之前的数值...然后udpate语句因为RDS的binlog是记录修改前和修改后的数据的,所以发现binlog记录的是正确的数据。为什么会查出来一个小时之前的数据呢...虽然只有一次!
3.生成报表Excel并下载,大概从几万到十几万数据。因为系统有几天偶尔会跑死,cpu占用率爆高,或者连接池超时(实际连接数并不很高,大概七八十),一直不知道是什么原因,只能重启系统。后来发现,这事儿和360浏览器有关(为毛又是360浏览器,被这玩意坑的血泪史真是...),客户如果用360浏览器下载生成的Excel报表,浏览器可能没正确识别Content-Length头(为毛这么弱智的bug)所以半路就把连接关了,客户就下载失败了,服务端catch异常之后正常返回;然而就这么个简单问题,服务器上tomcat占用cpu直接就爆表,因为线上交易比较多,所以一直没时间仔细研究这个bug的具体原因(怀疑是tomcat的apr的bug),但是看起来无论如何也不应该出现这个问题...解决方案就是换其他whatever的浏览器都ok,只要别是大坑360。
记录一下,可能后来还有被坑的兄弟,可以参考。
相关推荐
前几天在网上找的关于VSS的一个API的调用,遍历设定的服务器,获取所有文件及目录,将文件的更新记录导入数据库,利用数据库知识做更多扩展,目前开放3个表,1\users;2\files;3\historys;使用这些数据可以轻松的获取员工的...
尽管记录不一定精准,但是从这个项目中,可以学习几个不同的技术:加速器交互、语音更新、后台运行服 务等。 8、 OpenSudoku-android OpenSudoku是一个简单的九宫格数独游戏。从代码中可以学习到如何在视图中显示...
尽管记录不一定精准,但是从这个项目中,可以学习几个不同的技术:加速器交互、语音更新、后台运行服务等。 8、 OpenSudoku-android OpenSudoku是一个简单的九宫格数独游戏。从代码中可以学习到如何在视图中...
尽管记录不一定精准,但是从这个项目中,可以学习几个不同的技术:加速器交互、语音更新、后台运行服务等。 8、 OpenSudoku-android OpenSudoku是一个简单的九宫格数独游戏。从代码中可以学习到如何在视图中...
尽管记录不一定精准,但是从这个项目中,可以学习几个不同的技术:加速器交互、语音更新、后台运行服务等。 8、 OpenSudoku-android OpenSudoku是一个简单的九宫格数独游戏。从代码中可以学习到如何在视图中...
本项目是一个有历史记录和主题切换的安卓计算器项目源码,有比较复杂的布局和SQLite应用,整个项目分了好几个层。
另外有一个自己遇到的问题笔记记录和答案。 我是从今年4月中旬第一次开始看的,花了一个月时间,一次通过。 经验: 1、刚开始不知道这个是什么,考什么,随便了找了一个试卷,原来有上午下午两场,随便做了一套题目...
使用Kafka能够让日志的推送在几个CPU tick内完成,几乎完全不影响日志生产者的处理效率。 在日志数据的消费端,breeze使用MongoDB进行日志数据的落地,之所以选择MongoDB,而不是其他关系型数据库或key-value型...
具体要介绍一个项目(包括梳理一个项目),可以按照下面几个阶段来做。 ### 1. 介绍项目背景 这个项目为什么做,当初大的环境背景是什么?还是为了解决一个什么问题而设立的项目?背景是很重要的,如果不了解背景,...
阶段评审可以对某个开发阶段的阶段产品进行评审,也可以对某几个开发阶段的阶段产品进行综合评审。在每次阶段评审中,必须履行正式手续,填写必要的评审表格,以利于项目管理工作,利于产品验收时的质量检查工作。 ...
3. **示例工程**:通过几个具体的移植案例,展示了如何将台湾地区的应用和功能成功迁移到新的Android项目中。 4. **二次开发工具包**:提供了一系列定制化的工具和插件,帮助开发者根据自身需求对项目进行二次开发和...
我们只需运行程序就可以理解teach.cpp这样的数据驱动系统的灵活性,按照这个项目最初的目标,程序teach.cpp应该用于传统的程序化教学,如文件cs.txt最开始的几个问题见下图: 当程序teach.cpp与这个文件结合应用时...
我们只需运行程序就可以理解teach.cpp这样的数据驱动系统的灵活性,按照这个项目最初的目标,程序teach.cpp应该用于传统的程序化教学,如文件cs.txt最开始的几个问题见下图: 当程序teach.cpp与这个文件...
本文记录了几个平时在项目中使用javascript的易错的点,时刻提醒自己不要再犯相同的错误。
本软件主要包括以下几个模块:新增收入、新增支出、我的收入、我的支出、数据管理、收支便签以及密码设置。用户可以对支出和收入信息的记录、修改、删除、查询、统计进行操作以及用便签功能来记录将要支出和收入的...
一、业务描述: 最近在做一个电商的项目,里面有平台端和商家端以及用户端,那么这么多Vue项目...多加几个location即可 四、最后记得保存 :wq 五、重新启动Nginx systemctl restart nginx 六:Nginx.conf的内容 ser
项目是我自己找的,不是本人做的,但是毕业设计是我总结的[毕业设计需要另算分了...],如果直接拿这个项目交的话,需要注意的几点:【项目】:里面有个图片,就是网页底部要用到的,注明的有人家的公司,需要拿photo...
那么接下来就是分享几个感觉能在服务器上使用的场景,也是自己想要进行尝试的 玩法1:利用云主机自建博客 自建博客作为当下最流行的个人宣传方式之一,走在技术前沿的你怎么能没有呢? 在属于自己的博客中,你不仅...
管理员功能包括以下几个模块: (1)员工管理模块:可以对系统用户的的基本信息进行修改、删除和查看 (2)项目管理模块:可以对项目任务基本信息进行添加、删除、修改和查询 (3)日志管理模块:可以对任务日志的...
为什么PCS 7项目中当前报警的显示时间与本地时间不一致pdf,西门子之为什么PCS 7项目中当前报警的显示时间与本地时间不一致