秒杀商品实时热点发现及如何进行测试

目录

热点数据实时保护步骤

重要注意事项如下

实时热点发现策略

一、构建异步系统

二、热点上报和订阅机制

三、实时数据分析

四、异步采集与秒级响应

热点数据处理

一、缓存优化

二、限流与隔离

三、动态调整

秒杀商品测试时需要注意的事项?

一、功能测试

二、性能测试

三、安全测试

四、其他测试


秒杀系统本质上仍然是读数据的热点问题,而且是最简单的 前面已经提及通过业务隔离能够提前识别热点数据,就好比通过分析历史成交记录可以发现热门商品、通过分析用户的购物车记录也可以发现比较好卖的商品一样。难点在于未能提前发现的商品突然成为热点------这就要通过实时热点数据分析来判断了。我们做了可以在3秒内发现交易链路上的实时热点数据的设计,并根据实时发现的热点数据实时保护每个系统,它的具体实现步骤简述如下。

热点数据实时保护步骤

第一步,构建一个异步的、可以收集交易链路上各个中间件产品(如 TengineTair 缓存、 HSF 等)本身统计的热点 key ( Tengine Tair 缓存等中间件产品本身已经有热点统计模块)。

第二步,建立热点上报和可以按照需求订阅的热点服务的下发规范,主要目的是通过交易链路上各个系统(详情、购物车、交易、优惠、库存、物流)访问的时间差,把上游已经发现的热点透传给下游系统,提前做好保护(比如在大促高峰期,详情系统是最早知道哪些是热点商品的),在统计接入层上用 Teng in 模块统计出热 URL。

第三步,将上游系统收集到的热点数据发送到热点服务台上,这样下游系统如交易系统就会知道哪些商品被频繁调用,再对此做热点保护。

重要注意事项如下

热点服务后台抓取热点数据日志最好是异步的,一方面便于做到通用性,另一方面不影响业务系统和中间件产品的主流程。

热点服务后台、现有各个中间件和应用本身的保护措施没有取代关系,每个中间件和应用还需要保护自己 热点服务台提供收集热点数据、热点订阅服务的统一规范和工具,便于各个系统热点数据透明化。

热点发现要做到实时(3 秒以内)。

图片

实时热点发现策略

针对秒杀系统中的实时热点数据发现,可以采取以下策略:

一、构建异步系统

秒杀系统可以构建一个异步系统,用于收集交易链路上各个环节的中间件产品的热点key信息,如Nginx访问URL、缓存命中情况等。

这些中间件产品(如Nginx、缓存系统、RPC服务框架等)本身可能具备热点统计模块,可以实时收集并上报热点数据。

二、热点上报和订阅机制

建立热点上报和按需订阅热点服务的下发规范。通过交易链路上的各个系统(如详情页、购物车、交易、优惠、库存、物流等)之间的时间差,将上游系统发现的热点数据透传给下游系统。

例如,在大促期间,详情页系统最早知道哪些商品可能成为热点,然后通过统一接入的Nginx模块统计热点URL,并将这些信息上报给热点服务台。

三、实时数据分析

对收集到的热点数据进行实时分析,通过大数据计算、统计等方法识别出真正的热点数据。

分析结果可以通过订阅分发的方式推送到各个系统,各系统根据自身需求决定如何处理这些热点数据,如进行缓存、限流等。

四、异步采集与秒级响应

热点数据采集最好采用异步方式,以保证不影响业务的核心交易链路。

热点发现应做到秒级实时,以便在热点数据产生时立即做出响应,防止系统过载。

热点数据处理

一旦热点数据被发现,需要进行有效的处理以减轻系统压力。

一、缓存优化

缓存热点数据是最为有效的优化手段。通过缓存热点数据,可以减少对后端数据库的访问次数,降低系统压力。

热点数据可以存储在Redis等高速缓存系统中,并设置合理的过期时间和淘汰策略。

二、限流与隔离

对热点操作进行限流处理,防止恶意刷单或过度访问导致系统崩溃。

隔离热点数据与普通数据,确保热点数据的处理不会影响到其他正常数据的处理。

可以通过业务隔离、系统隔离和数据隔离等多种方式实现隔离效果。

三、动态调整

根据热点数据的实时变化动态调整系统资源分配和处理策略。

例如,在热点数据流量激增时,可以自动增加缓存容量、调整限流阈值或增加服务器资源等。

秒杀商品测试时需要注意的事项?

一、功能测试

秒杀时间设置:确保秒杀活动在设定的时间范围内正确开启和结束,用户可以在指定时间内参与秒杀。

限购数量:测试用户购买数量的限制,包括边界值测试(如最大购买数量、最小购买数量)和异常测试(如一个ID多次购买)。

付款时间:测试付款时间的边界值,如支付超时后的处理逻辑。

库存处理:测试秒杀过程中库存的实时变化,包括超时支付后库存的恢复处理。

并发购买:测试多个用户同时购买同一商品时的成交规则,确保系统的幂等性(即同一订单只能成交一次,其他尝试失败)。

订单回调:测试订单在不同状态(如支付成功、支付失败、自动取消支付、风控取消)下的回调处理逻辑。

主动查询:测试用户主动查询订单状态的功能,确保系统能够准确同步并返回订单的最新状态。

二、性能测试

并发数测试:模拟高并发情况,测试系统同时支持多少用户一起秒杀,确保系统在高并发下的稳定性和响应速度。

接口限制:测试系统接口的访问限制,如一秒内允许的最大访问次数,以保证系统的稳定性和防止恶意攻击。

响应速度:测试系统的响应速度和页面加载速度,确保用户在秒杀过程中能够快速完成操作。

三、安全测试

越权下单:测试无权购买某个商品的用户尝试下单时系统的处理逻辑,防止越权操作。

数据越权:测试无权查看某些数据的用户是否能够获取到这些数据,确保数据的安全性。

支付接口加密:测试支付接口的数据加密传输情况,确保用户的支付信息在传输过程中不被窃取。

数据库日志加密:测试数据库日志中的敏感信息是否加密存储,防止敏感信息泄露。

四、其他测试

用户场景测试:针对不同的用户场景进行测试,如新用户、老用户、不同设备、不同网络环境等,确保系统在各种场景下都能正常运行。

容错性测试:测试系统在高负载、数据库连接超时等异常情况下的容错能力,确保系统能够自动处理这些错误并恢复正常运行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Feng.Lee

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值