系统设计(系列二)--现上问题整理(云崩溃和服务不可用)

一、线上问题整理(服务器问题)

昨晚(3月2号)爆出阿里云宕机,导致华北地区相关使用的公司,其系统和APP无法正常访问。第一次强行蹭热点,勿怪。联想到我所在公司最近在项目线上所遇到的问题。其实我们使用的是腾讯云(阿里云由其它项目组使用),腾讯云去年(2018年,真实)也崩过,一次是网线被挖断;第二次是我们的服务在腾讯云DNS解析失败。

首先是确认问题,最先表象是系统访问不了,然后就去排查,由于我们是使用免费的HTTPS(有使用期限),首先看看是否过期了,发现并没有,最后到服务器进行ping,发现ping不通,联系腾讯云客服,发现是网线被挖断了。由于没有服务没有部署到其他服务器上(自建机房,阿里云,亚马逊云)。那我们只有等腾讯云恢复了(需要跟腾讯云客服确认恢复时间),期间服务是不能正常运行的。第二次的问题解决思路也是差不多。

首先整理一下解决思路:

排查自己服务的问题(网络等问题);2.联系云客服(主要确认恢复时间等)。

多谈一点,其实上面的都不是最好的解决方案,因为网线被挖断,只是一个地区的服务不能使用,如果项目那个时候是顾客高峰期,停一个小时损失也是很大的。不能叫顾客等半个小时或一个小时以上。其实我的思路是在云服务上立即购买其他地区的,至少能恢复服务,但是部署时间要和恢复时间进行对比一下。

第二个问题就是服务恢复之后的问题,查看数据是否一致,这个很重要。比如有部分刚刚好在支付阶段连接不上,这个怎么处理?有的过30分钟之后会自动取消订单,由于服务无法正常运行,定时任务也无法正常运行了。我们的解决思路是:1.查询数据,确认数据是否异常;2.跟业务确认,这笔业务怎么处理,是执行脚本(手动执行定时任务)继续执行下去,还是标记失效。

推荐一篇文章:架构师之路的,这篇更加的完善。https://mp.weixin.qq.com/s/Svrks178L03QM2KvwSnL2w

二、线上问题整理(服务不能访问问题)

第一个是服务器崩溃的问题(腾讯云,阿里云崩了),第二个问题是服务连接不上(最后查出来的问题:连接超时)。这个反映了哪些问题?

最表象的问题是订单保存不了,并且是大面积的。项目群已经炸了,都是这个问题截图。一开始以为是服务崩了,发现并不是,以为其他功能是可以正常服务的(服务是按照功能划分的),所以不是服务崩溃了。保存不了订单以为一直抱校验失败,以为是JS的问题,以为JS也有部分校验功能,立马打电话通知前端,是否是JS的问题。发现不是,最后看服务器的日志,发现是一个第三方服务连接超时(数据库)。内心是崩溃的,找问题找了很久(报错是我们数据库连接失败,但是我们数据库在客户端是可以进行使用和查询的)。解决的方式:通知不要进行操作了,此时持续操作将导致数据库阻塞的更加严重。同时立马重启一下数据库服务(docker搭建的,很快)。但是发现还是会出现老问题,因为我们不能把握第三方服务器资源,同时不是我们这边服务(数据库)的问题。最后联系第三方,重启他们那边的服务,把之前阻塞的线程清空。

由于是报错的本象是我们数据库事务创建失败(最后发现是第三方服务连接超时问题)。首先根据报错,为什么事务创建失败,查看代码并没有(update/insert等操作),只有查询操作,最后发现是查询也开启了事务,同时请求第三方很慢很慢。导致事务一直没有释放,由于那个时期又是高峰期,导致一直阻塞,最后超过最大数,事务创建失败。

反映的问题总结一下:1.不能立即定位问题出现在哪里?2.报警系统失效(我们是发送邮件)。3.为什么第三方服务连接超时导致服务失败(容错机制不行)。4.还有就是服务(数据库)没有做到高可用,没有做成集群。5.代码写的不规范(查询也开启事务)。

繁荣Aaron

没时间解释了,快长按左边二维码关注我们~~

转载于:https://my.oschina.net/u/2380961/blog/3017302

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值