压测接口触发公有云服务导致收费服务包耗尽怎么办?

2021-12-09 18:00:02 浏览数 (1)

【问题背景】

某项目执行压测脚本,因直播录制回写接口没有添加挡板,导致流量包欠费,从而使功能不可用。当天已经停止压测,可在接下来两天里仍然能够监控到流量接入。

【业务链路】

接口功能:

开启录制功能,直播结束后,回调该接口,保存直播时录制的视频

业务链路:

根据这业务简要流程图可以看出:使用直播录制功能,通过直播录制录制回写接口访问第三方服务公有云服务,然后将录制的视频数据存放到公有云的数据库中。因为需调用第三方服务,所以这个过程是需要消耗资源包产生流量费用的。所以,在压测过程中避免资源的浪费,需要在接口请求中加入挡板。

【挡板作用】

在接口请求头上加入挡板,就可以绕过公有云的扣费服务

挡板作用逻辑:

可以看出,加入挡板后,可以将流量下发到数据库中,并绕过公有云的收费推送。这样可以大胆的执行压测,而不用担心无因流量包耗尽而功能不可用的风险了。

【扣费机制】

公有云服务的流量包为预付费机制,先预付流量包的费用才能使用该服务。当流量包用完之后,会停止流量接入。而项目组在检查流量包耗尽之时,在设定时间段内,每天续费一个包的标准执行。

这就可以解释上述的背景问题了。周五当天,执行压测时,因请求流量过多而导致服务因欠费而不可用。超过流量包部分的10W个请求的流量在列队等待,周六自动续费的8W的流量包,预留的2W流量为周日续费时扣除。

【实际压测结果对比】

1、带挡板压测结果:

压测集群:节点数10个

实际并发数:30

压测时间6分钟

2、不带挡板压测结果:

压测集群:节点数1个

实际并发数:10

压测时间6分钟

通过对比可以看出,加入挡板,对于压测结果不会产生实际影响。

【总结】

执行压测时,对于需要调用公有云服务的接口,可以加入挡板机制,从而避免压测过程中触发流量包耗尽而服务不可用,影响压测的实际结果。

0 人点赞