上面是 B2C 压测的整个链路,首先是补贴的发放,然后通过查询补贴,通过补贴来发放红包,为了模拟多人来领取的情况,我们起了多个 goroutinue 来并发的领取红包。
C2C 红包链路压测C2C 红包因为涉及到支付相关的操作,整个链路又是另外一套流程,因此对于 C2C 也需要有一个单独的脚本。在压测流程中,因为涉及到外部系统的依赖,如果等待全链路 OK 时再一起压测可能会导致一些未知的问题出现。因此我们需要自己压测没问题后再开始全链路一起压测,在图中和支付相关的蓝色模块我们都添加了相应的 mock 开关,来控制压测的结果。在 mock 开关打开时,会直接构造一个结果返回,在 mock 开关关闭时,会正常地去请求财经获取结果。
后续规划服务 Set 化在前面提到的系统容灾中,如果红包核心服务改掉,或者数据库 DB 主机房挂掉,将影响所有的用户,此时只能降级返回,整个系统无法快速切换和恢复。后续考虑将服务改为 set 化的架构。将服务 Server 和对应的存储划分为一个单独的 Set,每个 Set 只处理对应划分单元内的流量,同时多个单元之间实现流量拆分和故障隔离,以及 Set 之间数据备份。这样后续在某个单元异常时,可以及时将对应单元的流量切到备份单元中。
加入我们开放平台钱包团队为抖音开放平台提供底层支付能力支持,目前业务在快速发展中,面临各种复杂场景和技术挑战,欢迎邮件*wanghao.rock@bytedance.com 加入我们,一起做挑战性的事!