阅读558 返回首页    go 阿里云 go 技术社区[云栖]


系统稳定性保障核武器——全链路压测

不确定性带来的系统可用性问题

f12eebda58b0025ed17977cea926023bf583c596

线上单机与单系统压测

4ef117bf496902d277c16daea5f81282f5a33f83

单系统压测的问题

66ce65a9ad10163274df57412db11dcecb5195e7

1d21ac8cb7436c426d3f50ac8a898961190217b8

  • 压测环境,它是指具备数据与流量隔离能力的生产环境,不能影响到原有的用户体验和用户流程、BI报表以及推荐算法等;
  • 压测基础数据,它主要包括压测用户、店铺、商品等基础数据;
  • 压测场景模型,它主要是指压测哪些业务场景,每个场景下压测多大量等;
  • 压测流量,它主要由压测请求的协议来决定压测流量的输出;

压测环境

17e6879cfa7eb566f57386da2a1ce26ecc13190f

压测基础数据&压测场景模型

a75b8701afcb97f5b946f42d24a51747ced10fce

压测流量平台整体结构

6babbfc9cd51a46c5f7e0ea5d16aa8403656c0d9

压测流量平台挑战

压测流量平台技术选型

035b62bcc980b5829226541bf725717dfae01997

压测流量平台——压测引擎

0f5acc82591fd0acb6b8b7790f1814b8ff4e606c

  • 协议支持,主要支持的PC端协议包括Http、Https、websocket,无线端协议是Spdy、http2、accs、acds、mqtt。由于真正在双11时,用户使用的浏览器各异,进而导致与服务端协商的加密算法不一致,为了尽量模拟准确性,需要支持SSL 2.0\3.0、TLS1.0\1.1\1.2不同算法套件灵活配比,贴近用户端行为。
  • 请求发送,由于全链路压测是利用现有的CDN集群,为了不影响现有CDN业务的正常运转,需要做Cgroup资源隔离(主要包括CPU和网络),为了实现性能最优,通常采用异步Reactor模型发送请求,链路间线程池隔离。
  • 集群协作,控制中心Master充当大脑来发送指令,所有节点根据收到的指令执行下一步操作,并且所有slave压测节点会实时将自身状态同步到Master,以便于其做决策,如果slave节点状态不好,master则将其剔除。如果压测引擎与控制中心失联,则压测引擎会自杀,避免流量浪费。

772c3700f4e04cbc46922c2872df714622161957

双11全链路压测现场

62960baa85c8b9523f571ac4175c8b9e81ca4aa8

6d244b485b6182d80f7080f50fa661d981b5ecbc

全链路压测平台

9c473bd9a6c70311d648a0f96a7ed142ee4a4ba4

最后更新:2017-08-13 22:26:07

  上一篇:go  想知道一个互联网项目如何实现持续集成吗?(含视频)
  下一篇:go  DTCMS 栏目调用方法