记录项目中几个问题

都是很折腾人很见鬼的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。

 

记录一下,可能后来还有被坑的兄弟,可以参考。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值