zoukankan      html  css  js  c++  java
  • 生产问题-20190711

    今天刚去了公司就被一个生产问题拖住了,问题是这样的,我们的服务使用spring cloud 、微服务,其中一个基础数据服务 使用的 是阿里云的 sqlserver 数据库,凡是直接连接这个数据库查询的 sql、接口,都超时严重,因为昨天晚上刚刚发布新的版本,今天就出现这个问题,所以第一时间锁定的是代码上有问题。所以我们开始如下排查:
    1. 直接去生产调用超时接口,数据库执行对应sql,发现正常返回,并且没有超时严重问题
    2. 调高数据库连接,没有效果
    3. 查看连接数、数据库负载,内存、cpu等等全部正常
    在经历上述常规排查 ,我是已经没有想法。我们的接口是没有加缓存,曾经猜测是大量接口冲击,拖垮数据库,但是合理的数据库连接池和负载,说明我们的1个小时1万次请求是完全可以hold住的,只有十几个连接在工作,理论上没有影响。
    决定回滚代码

        再和别的业务组讨论后,发现不仅仅是我们的服务有问题,别的服务使用了 sqlserver 数据库,也存在接口超时问题,开始有人提出数据库有问题。
        
        所以我们先回滚代码排查代码问题,如果不行,决定趁着中午重启数据库。问题发现是上午,12点需要重启一次数据库,否则下午不能重启数据库就会就带来更大的影响
        
        然而重启服务依然没有解决问题,提交阿里云工单,代码临时加缓存
    
        除了加缓存,又提出新启动一个数据库实例,切换,临时使用
    
        3点时候,各项指数突然正常,通过更多等待观测,确定阿里数据库问题。什么都没有做就解决了。
    

    总结:问题虽然是阿里云数据库问题,但是也带来一些问题值得我们反思
    1. 发生问题时,要第一时间询问各个服务组,是否也出现问题,而确定是不是只有自己的服务,和自己的代码带来的问题
    2. 缓存不完善,如果在一开始就加上缓存,即使数据库连接出了问题,也会降低影响。接口不满足高性能、高可用
    3. 多找人沟通、多熟悉各项系统指标,多提高各种软实力

    人的潜力是可以激发的,比如说你给我50斤的砖我可能拎不动,但你要是给我100斤的人民币我肯定拎起来就跑。
  • 相关阅读:
    01背包问题需要找出相应路径
    单链表的正序输出和逆序输出
    二叉树之叶子节点个数
    01背包问题
    STL之map和multimap(关联容器)
    python的tips:字符和字符串的问题
    postman的使用(转载)
    python tips(3);import的机制
    python每日一类(5):itertools模块
    python每日一类(4):slice
  • 原文地址:https://www.cnblogs.com/mojiruo/p/11173485.html
Copyright © 2011-2022 走看看