• 微服务异常感知与快速定位排错


    场景:

    1. 背景一
      1. 在一个欢快假期中的夜深人静的享受着各自属于自己夜生活的时候。突然,电话响了!公司的领导让你马上处理线上系统问题。
      2. 此时此刻,你的脸可能是这样的。   (ΩДΩ)      o((⊙﹏⊙))o
      3. 灵魂三问在你的脑海里回响着。
        1. 我是谁?
        2. 哪个系统出问题了?
        3. 我该怎么办?
    2. 背景二
      1. 在一个欢快假期中的夜深人静的享受着各自属于自己夜生活的时候。突然,电话响了!N个业务人员告诉你,系统无法操作了,点什么都没反应。
      2. 此时此刻,你的脸可能是这样的。 (;´_)
      3. 开始忙碌起来了。
        1. 收集物证
        2. 接听各自电话
        3. 向上反馈
      4. 默默安慰用户与等待处理。
    3. 背景三
      1. 在一个欢快假期中的夜深人静的享受着各自属于自己夜生活的时候。突然,企业微信响了,异常聊天群里面满满的都是运维人员反馈的各种异常问题。
      2. 此时此刻,你的脸可能是这样的。(>﹏<) 不~ 
      3. 开始忙碌起来了。
        1. 联系项目负责人
          1. 联系技术负责人
            1. 联系 1 N 服务负责人
              1. 联系1 或者 N 个开发
        2. 联系技术负责人
          1. 联系 1 N 服务负责人
            1. 联系1 或者 N 个开发
        3. 开始协调各自资源与默默等待处理。
    4. 场景回到 背景一。

    问题:

    1. 问题是我们都是知道用户操作的系统出了问题了,但是不知道是系统哪里出了问题。
    2. 从开始异常到各自通知沟通,再到研发开发开始定位问题,时间已经过去了很久。
    3. 核心问题点是
      1. 异常自动感知,不需要等待用户反馈。
      2. 研发人员可以快速定位问题。
        1. 为什么是快速定位问题?
          1. 绝大部分的服务都不是新上线的服务,是经过严格测试与实际运行的。代码逻辑错误的可能性是最低的。

    如何解决问题:

    1. 从上诉来看,我们定位了问题的核心点。
      1. 服务异常感知,我们有各自的监控方案并且也在逐步完善与整合。但是目前缺少一个从服务自身为维度,进行检查的监控方案。
        1. 服务定期自检,反馈是否正常
      2. 提高研发人员定位问题的速度
        1. 复盘我们出现问题,研发人员需要做哪些步骤,做哪些处理。优化简化流程。
      3. 不光研发可以定位处理问题,在常见情况下,其他人员也可以定位问题。
        1. 出现问题的情况收集,当看到异常感知报错的信息后,对比异常消息,直接定位到异常问题。进行针对解决。

    解决方案

    整体思维导图

    介绍

    1. 页面
      1. 地址 http://10.10.6.246:18101/wallboard 
    1. 报错通知
      1. DB
        1.  
    1. Hystrix

    问题排查

    1. hystrix
    1. 日志
      1.  

    动态日志级别调整

    1. 使用场景
      1. 线上问题排查。
    2. 使用方式
      1. 直接调整单个运行的节点的日志级别获取更详细的日志信息。
    3. 使用效果
      1. 无需重启服务即可打印详细日志。
      2. 单节点调整,不会影响其他节点。

     

      

    历史状态日志

    1. 查看一定时间内的微服务状态信息
      1. 上线下情况
      2. 访问情况
      3. 异常情况及其详细信息
      4. 状态变化时间点

    实际案例

    1. 微服务执行对应数据库测试语句失败。
    2. 监控页面微服务对应颜色从绿色变成红色。
    3. 触发企业微信通知
    4. 相关人员获知微服务出现的异常情况与原因
    5. 解决问题
      1. 可以通过异常信息直接判断异常原因
        1. 直接进行相关处理。
      2. 通过异常信息无法判断异常原因
        1. 直接访问该微服务的异常节点查看相关日志。

      

    低版本问题

    1. 低版本的配置中心会每次检查都会访问一次配置中心数据
      1. 解决方案
        1. 升级为部门标准版本
      2. 高版本优化
        1. 加入缓存
  • 相关阅读:
    unity代码加密for Android,mono编译
    php __invoke 和 __autoload
    VC只运行一个程序实例
    VC单文档对话框添加托盘图标
    技术文档应该怎么写
    项目管理学习
    cannot download, /home/azhukov/go is a GOROOT, not a GOPATH
    Go语言学习
    appium键盘事件
    appium-doctor
  • 原文地址:https://www.cnblogs.com/atliwen/p/13807507.html
Copyright © 2020-2023  润新知