1. 背景

大促期间,由于联华在每天10点有抢券活动,导致tps暴增,ecs的cpu使用率上升,从而拖慢了整体服务。 经过排查,我们发现了几个问题:

  • baas-gateway的路由策略为随机平均分发,由于部署结构上,我们存在有的机器性能好,有的机器性能差,在随机分发策略下, 部分机器算力有空余,部分机器已经满载。

  • cms活动模板的数据模型无法反序列化,导致运用了大量的反射操作,从而加剧了cpu运算压力。

  • 商品查询链路长,访问频次高,对于用户来说超过3秒的查询其实已经是被放弃的,但是后端线程是继续处理下去的。

2. 设计方案

对于以上问题,zl-app-service可优化的点有两个,即2和3两点。

2.1. 一、优化cms活动模板解析

由于cms活动模板的数据模型变更成本较大,考虑设计缓存减少解析次数。

diag dd5daeafca3ee55cc4d0f83114dd655a
diag 42a82d40ed297bd5ab7b0c3446b3a73c

3. 二、对商品查询接口设计超时时间

在实际用户使用过程中,一般的页面商品查询,通常超过3秒未返回的数据,用户在主观上已经丢弃,但是后端依旧在处理,这是一种浪费性能的表现。 因此我们需要设计一种机制,可以主动抛弃一些我们认为可以丢弃的请求。

3.1. 设计方案

TODO