一个极简、高效的秒杀系统(战略设计篇)
- - DockOne.io2018年,楼主所在业务线开始发力探索线上O2O业务,但楼主所在公司并非纯电商公司,电商体系标配的商品中心、库存中心、活动系统都处于萌芽阶段不成气候. 10月中旬,业务决定搞一波双十一大促提升品牌知名度. 整个大促最核心功能点就是造一个秒杀系统,为整个活动会场积蓄流量. 作为该业务线营销工作负责人,这个秒杀系统设计任务自然就落到楼主身上.
{
"activityName": "双十一秒杀第一场",
"startTime": 1540174800000, // 活动开始时间
"endTime": 1541988000000, // 活动结束时间
"itemLine": [
{
"itemId": 123, // 活动商品id
"itemType": 7, // 活动商品类型
"itemTitle": "这是商品标题",
"subTitle": "这是商品副标题",
"itemImage": "这是图片链接",
"salePrice": 66800, // 商品原价(单位:分)
"activityPrice": 100, // 活动价
"quota": 3, // 单个用户商品抢购件数限制
"stock": 100 // 商品活动库存
}
],
"activityRuleConfigs": [ // 活动规则列表
{
"configKey": "city", // 城市规则:在规则列表的城市可看到活动
"configValue": "17,5,10,2,3,4,11"
}
]
}
{
"traceId": "2910c88d0d4f45d5fe299f0c5829d72c",
"code": "SERVICE_RUN_SUCCESS",
"msg": "服务运行成功",
"status": 10000,
"success": true
}
{
"traceId": "2910c88a0d4f45d5be290f0c5829d72c",
"success": true,
"status": 10000,
"msg": "OK",
"code": "SUCCESS",
"data": [
{
"activityId": 1,
"activityName": "双十一秒杀第一场",
"startTime": 1541901600000,
"endTime": 1741951999000,
"enabled" true
}
]
}
{
"traceId": "889924ef8e6241a7a766107f38c5e0c0",
"success": true,
"status": 10000,
"msg": "OK",
"code": "SUCCESS",
"data": {
"activityId": 1,
"activityName": "双十一秒杀第一场",
"startTime": 1541901600000,
"endTime": 1741951999000,
"enabled" true
"items": [
{
"itemId": 53725,
"itemType": 1,
"itemTitle": "x商品",
"subTitle": "x商品副标题",
"itemImage": "http://img.xxxx.com/static/do1_QtSq1m2xM7VL6zEI4sUH",
"itemPrice": 19800,
"activityPrice": 4800,
"quota": 3,
"stock": 50,
"sold": 0
},
{
"itemId": 53724,
"itemType": 1,
"itemTitle": "y商品",
"subTitle": "y商品副标题",
"itemImage": "http://img.xxxx.com/static/MrcNjUeeoOG24zZH7nR.png",
"itemPrice": 42800,
"activityPrice": 17000,
"quota": 3,
"stock": 50,
"sold": 0
}
]
}
}
{
"traceId": "a77edf653da644959d331b7b55607958",
"success": true,
"status": 10000,
"msg": "OK",
"code": "SUCCESS",
"data": {
"itemId": 53724,
"itemType": 1,
"itemTitle": "x商品",
"subTitle": "商品副标题",
"itemImage": "http://img.xxxx.com/static/do1_QtSq1m2xM7VL6zEI4sUH",
"itemPrice": 42800,
"activityPrice": 17000,
"quota": 3,
"stock": 50,
"sold": 0,
"activity": {
"activityId": 1,
"activityName": "双十一秒杀第一场",
"startTime": 1541901600000,
"endTime": 1741951999000,
"enabled" true
}
}
}
{
"activityId": 1,
"buyerId": "buyer_001",
"itemId": 53724,
"orderId": "20191111123456789",
"orderTime": 1541901700000,
"quantity": 1
}
{
"traceId": "f689852f113e413d9940ce24020e7083",
"success": true,
"status": 10000,
"msg": "OK",
"code": "SUCCESS",
"data": true
}
{
"activityId": 1,
"orderId": "20191111123456789"
}
{
"traceId": "5342243fd424468ab9ad13d03ffcdc62",
"success": true,
"status": 10000,
"msg": "OK",
"code": "SUCCESS"
}
hincrby buyer_hold:$活动id:$商品id $买家id $抢购数量
hincrby item_sales:$活动id $商品id $抢购数量
hset stock_reduce_flow:$活动id $订单id $json化库存扣减流水
hincrby buyer_hold:$活动id:$商品id $买家id -1*$抢购数量
hincrby item_sales:$活动id $商品id -1*$抢购数量
hdel stock_reduce_flow:$活动id $订单id