当前位置: 首页 > news >正文

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

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

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

昨晚(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

相关文章:

  • 医疗行业邮件服务器架设方案
  • Python 代码片段收藏
  • IOS--UISwitch的使用方法
  • Netty防止内存泄漏措施
  • GraphGL教程
  • 魔戒三曲,黑暗散去;人皇加冕,光明归来
  • Phpcms所有系统变量列表 Phpcms V9 文件目录结构
  • node 版本过低
  • C# WinForm开发系列 - DataGridView 使用方法集锦
  • 从图形到像素:前端图形编程技术概览
  • BZOJ2802 [Poi2012]Warehouse Store
  • 七、将你的docker镜像上传到docker hub
  • OpenGL tutorial资源在mac yosemite下的cmake生成工程问题
  • lizbaka的周记
  • 网市场云建站 v4.8 增加私有模版库,开放 Mysql 配置、在线客服源码
  • 收藏网友的 源程序下载网
  • canvas 绘制双线技巧
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • PV统计优化设计
  • react 代码优化(一) ——事件处理
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • SwizzleMethod 黑魔法
  • 阿里云前端周刊 - 第 26 期
  • 从伪并行的 Python 多线程说起
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 聊一聊前端的监控
  • 前端技术周刊 2019-01-14:客户端存储
  • 如何选择开源的机器学习框架?
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 微服务框架lagom
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • 用jquery写贪吃蛇
  • 智能合约开发环境搭建及Hello World合约
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • Linux权限管理(week1_day5)--技术流ken
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • ​人工智能书单(数学基础篇)
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • ( 用例图)定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (02)Hive SQL编译成MapReduce任务的过程
  • (动态规划)5. 最长回文子串 java解决
  • (二开)Flink 修改源码拓展 SQL 语法
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (九)c52学习之旅-定时器
  • (七)理解angular中的module和injector,即依赖注入
  • (全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • (转)Linq学习笔记
  • ****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算