微博平台稳定性体系介绍
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用来抗带宽
- 自保护,防雪崩
• 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
来自:http://weibo.com/p/1001603939610718766471