微博平台稳定性体系介绍

admin 9年前
目录介绍
    1. 微博平台业务介绍
    2. 稳定性体系-整体方案介绍
    3.  稳定性体系- 架构方案详细介绍
    4.  稳定性体系- 监控体系详细介绍
    5.  稳定性体系- 容量评估
    6.  稳定性体系- 干预方式

随着微博业务的快速发展,微博平台的稳定性建设也越来越完善,应对线上突发问题的能力也越来越强。
    
   
1. 微博平台业务介绍

    微博平台组负责微博的feed,评论,赞等核心业务的后台接口开发和维护,系统的主要特点如下:
  • 请求量大
           Ø 日常晚高峰部分接口的qps能达到6w,大部分的接口的qps也在5千以上

  • 依赖资源多,任何依赖的资源都有可能down掉  
          Ø 依赖MC,Redis,DB,RPC,HTTP,Hbase。仅核心池就依赖90多个MC端口,500多Redis端口,100多个db端口

  • 大型运营活动及三节保障:
        Ø 让红包飞
        Ø 春晚

  •  热门突发事件:
        Ø 范冰冰李晨的我们
        Ø 周一见

    各种各样的情况需要我们能快速应对。


2. 稳定性体系整体方案介绍
微博平台稳定性体系介绍





3 . 架构体系详细介绍

  • 无单点设计
         Ø 调用链路无单点
                            前端,队列机,rpc 无状态服务,可线性扩容
        
        Ø 资源层分层设计
                             MC,Redis,DB 主从设计,其中mc 有三层设计:Master slave保障高可用,L1用来抗带宽
             微博平台稳定性体系介绍
  • 自保护,防雪崩
        Ø 线程池保护,超出服务器最大线程时drop请求
            • Tomcat 前端机 
                               •   RPC
        Ø Fail Fast
                               •  MC,Redis,DB,Hbase,Motan RPC 在后端资源出问题时可以自动降级请求调用

  • Localcache 应对极热的push数据
  • 服务隔离
        Ø 物理隔离, 多机房部署
             微博平台稳定性体系介绍
        Ø 逻辑隔离, 拆分核心池,非核心池。防止非核心服务影响核心服务。



4 . 监控体系详细介绍
    此处的监控是业务层的监控,不包括运维层的监控。监控体系的基础是日志体系,日志体系主要包括:
     Ø 请求日志
        记录用户的请求参数, 4xx 5xx 数量,平均耗时等,包括nginx层,tomcat层,业务层
     Ø Trace 日志
        通过 requestId 串联所有的日志,用于定位分析问题
     Ø 性能统计日志
        包括 qps ,平均耗时, slow count ,耗时区间
     Ø 分步耗时日志
        分析定位哪一步性能差
    Ø 线程池日志
    
    监控体系主要包括

   
【实时报警】:
     Ø 实时监控接口健康状况,变为红色表示问题已经很严重。
     Ø 可查看哪台服务器有问题。
     微博平台稳定性体系介绍

 【监控类】: 

    1.【qps监控】

     Ø 判断是否流量突增导致容量不足
     Ø 判断是否单机房问题
          微博平台稳定性体系介绍

    

    2. 【平均耗时监控】

        监控接口性能是否存在问题

           微博平台稳定性体系介绍

    3. 【4xx,5xx监控】

    判断接口是否存在异常
             微博平台稳定性体系介绍

 【问题定位

    1.【单机slow top】之前需要扫描nginx才能定位是否是单机问题,通过此监控,快速判断是否单机问题。

            微博平台稳定性体系介绍

        2.【依赖资源整体slow 】

           通过此监控,快速判断哪类资源有问题

           微博平台稳定性体系介绍

        3.【具体资源slow top 5】

              每种资源对应的端口或接口很多,

              对具体资源进行慢请求的top5分析,可以快速找出具体哪些端口或接口有问题

          微博平台稳定性体系介绍

       4.【分步耗时】

          某个接口中每一步的耗时情况,便于排查问题

          微博平台稳定性体系介绍



5. 容量评估

    压测方式 :

    Ø 单机压测

    • tcpcopy线上引流:多台引一台或放大流量倍数
    • 调整nginx权重

    Ø 服务池压测

    • 机房间流量切换
    • 线上逐步503服务器从nginx摘除

    Ø 资源容灾压测

    • touchstone:基于tc(延迟)和iptable(封禁)
     评估结果
     Ø 单机能承载的最大qps
     Ø 服务池能承载的最大qps
     Ø 水位预警
         微博平台稳定性体系介绍


6 . 干预方式

    降级
    Ø 接口降级
                整个接口降级 
                接口及参数匹配 
    Ø 非核心路径降级
    Ø 依赖资源降级
                mc、redis、db、http、mcq
    封杀
    Ø uid
    Ø appkey
    Ø ip
    切流量
    Ø DNS层
    Ø Nginx层
     动态扩容:基于docker和 阿里云的动态扩容方式可以实现10分钟扩容上百台前端机的能力,期待春晚依赖混合云顺利度过流量高峰。

来自:http://weibo.com/p/1001603939610718766471