目录介绍
微博平台业务介绍
稳定性体系-整体方案介绍
稳定性体系-架构方案详细介绍
稳定性体系-监控体系详细介绍
稳定性体系-容量评估
稳定性体系-干预方式
随着微博业务的快速发展,微博平台的稳定性建设也越来越完善,应对线上突发问题的能力也越来越强。
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分钟扩容上百台前端机的能力,期待春晚依赖混合云顺利度过流量高峰。(完)