拆解交易系统--如何做好稳定性

2019-12-19 22:40:05 浏览数 (1)

快速发展的互联网业务往往存在一段“快,糙,猛”的阶段,业务的高速发展过程中大家的注意力都集中在了业务快速迭代,系统功能快速实现,而忽略了稳定性相关的问题。

这一阶段往往故障比较多,更麻烦的是由于监控系统缺失,很多异常难以第一时间发现,所以故障面可能会被放大。

监控系统

做好故障监控可以在两个角度去做:

  1. 业务系统层面:这一部分主要围绕业务逻辑实现,将一些核心路径信息上报上来
  2. 机器指标层面:这一部分主要围绕机器指标实现,比如内存,cpu,jvm,gc,线程,磁盘,io,网络等信息

通用的监控实现方式可以围绕这四个方面建设:

  1. 申请日志上报资源
  2. 业务逻辑中埋点日志,日志被每台机器的agent采集并异步上报到日志中心
  3. 对日志中心数据做统计处理
  4. 实现监控页面,将指标可视化

故障告警

在建立起了监控系统之后,可以围绕各种核心监控指标建立一套故障告警策略,周期性推送故障报告,让研发团队可以就自己系统过往的一些性能指标有个横行的了解。

在每次故障之后还建议团队做复盘,对故障的影响进行故障定级。研发同学输出一份故障报告,里面详尽记录故障发生的过程。

目的侧重于针对此类故障进行系统加固,避免再次发生,提高故障主动发现能力,缩短故障处理响应时间。

监控体系实现思路其实比较简单,可以提供一些简单通用的API,运行业务方进行侵入式代码开发,对某个监控项ID进行设置Value,或者累加Value的功能。

每台机器的Agent定时采集数据,将所有Id-Value上报到监控中心,监控中心对数据汇总入库后,通过统一监控页面输出可视化曲线,并通过配置的告警规则实现告警能力。

后期通过监控中心补全各项监控指标,降低业务方开发接入成本,帮助业务方及时发现问题,采用灰度策略考量监控指标是否适合此业务场景。

0 人点赞