小红书的电商业务从2014年的跨境电商”福利社”开始,逐步发展成为集社区种草、直播带货、品牌商城于一体的综合电商平台。本章深入分析小红书电商技术架构的演进历程,探讨其如何构建支撑”社区+电商”独特模式的技术体系。
2014 2016 2018 2020 2022 2024
| | | | | |
v v v v v v
[跨境电商] → [自营电商] → [开放平台] → [直播电商] → [全域电商] → [智能电商]
福利社 品牌入驻 商家系统 直播带货 内容电商 AI驱动
保税仓 供应链 交易中台 实时系统 数据闭环 个性化
┌─────────────────────────────────────────────┐
│ 前端展示层 │
│ iOS/Android App + H5页面 │
└─────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────┐
│ 应用服务层 │
│ Django (Python) + Nginx │
│ 商品服务 | 订单服务 | 用户服务 │
└─────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────┐
│ 数据存储层 │
│ MySQL (主从) + Redis (缓存) │
└─────────────────────────────────────────────┘
┌──────────────────────────────────────────────────┐
│ 接入层 │
│ Nginx + API Gateway (Kong) │
└──────────────────────────────────────────────────┘
↓
┌──────────────────────────────────────────────────┐
│ 微服务层 │
├───────────┬────────────┬────────────┬───────────┤
│商品中心 │ 交易中心 │ 库存中心 │ 营销中心 │
│(Java) │ (Java) │ (Go) │ (Java) │
├───────────┼────────────┼────────────┼───────────┤
│用户中心 │ 支付中心 │ 物流中心 │ 商家中心 │
│(Java) │ (Java) │ (Go) │ (Java) │
└───────────┴────────────┴────────────┴───────────┘
↓
┌──────────────────────────────────────────────────┐
│ 消息中间件 │
│ Kafka + RabbitMQ │
└──────────────────────────────────────────────────┘
↓
┌──────────────────────────────────────────────────┐
│ 存储层 │
│ TiDB(交易) + HBase(日志) + ES(搜索) │
│ Redis Cluster(缓存) + MongoDB(商品) │
└──────────────────────────────────────────────────┘
1. 分布式交易系统
2. 库存系统优化
3. 营销系统
┌────────────────────────────────────────────────────┐
│ 前台应用 │
│ 小红书App | 商家后台 | 运营后台 | 客服系统 │
└────────────────────────────────────────────────────┘
↓
┌────────────────────────────────────────────────────┐
│ 业务中台 │
├──────────────┬──────────────┬─────────────────────┤
│ 交易中台 │ 商品中台 │ 营销中台 │
│ 订单域 │ SPU/SKU域 │ 促销域 │
│ 支付域 │ 价格域 │ 券域 │
│ 售后域 │ 库存域 │ 活动域 │
├──────────────┼──────────────┼─────────────────────┤
│ 用户中台 │ 内容中台 │ 数据中台 │
│ 会员域 │ 种草域 │ 指标域 │
│ 积分域 │ 直播域 │ 画像域 │
│ 权益域 │ 笔记域 │ 算法域 │
└──────────────┴──────────────┴─────────────────────┘
↓
┌────────────────────────────────────────────────────┐
│ 技术中台 │
│ 服务治理 | 消息中间件 | 分布式调度 | 监控告警 │
│ 配置中心 | 链路追踪 | 限流熔断 | 日志系统 │
└────────────────────────────────────────────────────┘
1. 交易中台建设
交易流程编排引擎
┌─────────────────────────────────────┐
│ Pipeline Framework │
├─────────────────────────────────────┤
│ 1. 参数校验 (ValidationStage) │
│ 2. 库存检查 (InventoryCheckStage) │
│ 3. 价格计算 (PriceCalcStage) │
│ 4. 优惠计算 (PromotionStage) │
│ 5. 订单创建 (OrderCreateStage) │
│ 6. 库存扣减 (InventoryDeductStage) │
│ 7. 消息通知 (NotificationStage) │
└─────────────────────────────────────┘
2. 实时数据系统
3. 直播电商技术
┌────────────────────────────────────────────────────┐
│ 多端接入层 │
│ App | Web | 小程序 | 开放API | 商家端 │
└────────────────────────────────────────────────────┘
↓
┌────────────────────────────────────────────────────┐
│ Serverless Gateway │
│ (自动扩缩容、智能路由、安全防护) │
└────────────────────────────────────────────────────┘
↓
┌────────────────────────────────────────────────────┐
│ 云原生微服务 │
│ Service Mesh (Istio) + K8s │
│ 服务发现 | 负载均衡 | 熔断降级 | 链路加密 │
└────────────────────────────────────────────────────┘
↓
┌────────────────────────────────────────────────────┐
│ 智能化中台 │
│ AI推荐引擎 | 智能定价 | 智能客服 | 风控大脑 │
│ 用户画像 | 商品理解 | 场景识别 | 趋势预测 │
└────────────────────────────────────────────────────┘
订单域模型
┌─────────────────────────────────────────────┐
│ 主订单 (Main Order) │
│ 订单号 | 用户ID | 金额 | 状态 | 时间 │
└─────────────────────────────────────────────┘
↓ 1:N
┌─────────────────────────────────────────────┐
│ 子订单 (Sub Order) │
│ 子订单号 | 商家ID | 商品列表 | 物流信息 │
└─────────────────────────────────────────────┘
↓ 1:N
┌─────────────────────────────────────────────┐
│ 订单商品项 (Order Item) │
│ SKU_ID | 数量 | 单价 | 优惠 | 实付 │
└─────────────────────────────────────────────┘
┌─────────┐
│待付款 │
└────┬────┘
↓ 支付
┌─────────┐
│待发货 │
└────┬────┘
↓ 发货
┌─────────┐
│待收货 │
└────┬────┘
↓ 确认收货
┌─────────┐
│待评价 │
└────┬────┘
↓ 评价
┌─────────┐
│已完成 │
└─────────┘
特殊流程:
待付款 ──超时取消──> 已取消
待发货 ──申请退款──> 退款中
待收货 ──申请退货──> 退货中
1. 订单号生成策略
订单号规则:时间戳(14位) + 机器码(4位) + 序列号(6位)
示例:20240315120030001200000001
分布式ID生成器(基于Snowflake算法改进):
┌──────────────────────────────────────────────┐
│ 0 │ 41位时间戳 │ 10位机器ID │ 12位序列号 │
└──────────────────────────────────────────────┘
2. 订单分库分表
分片策略:
- 按用户ID哈希分片(查询维度)
- 按时间范围分片(归档维度)
路由规则:
database_index = hash(user_id) % 16
table_index = hash(order_id) % 64
示例:
订单库:order_db_00 ~ order_db_15
订单表:order_00 ~ order_63
┌─────────────────────────────────────────────────┐
│ 支付网关 │
│ 统一支付接口 | 路由 | 风控 │
└─────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────┐
│ 支付核心系统 │
├──────────┬──────────┬──────────┬────────────────┤
│ 支付订单 │ 渠道管理 │ 账务处理 │ 清结算 │
│ 管理 │ 路由 │ 对账 │ 系统 │
└──────────┴──────────┴──────────┴────────────────┘
↓
┌─────────────────────────────────────────────────┐
│ 支付渠道 │
│ 支付宝 | 微信支付 | 银联 | 信用卡 | 花呗 │
└─────────────────────────────────────────────────┘
售后类型:
┌────────────┬────────────┬────────────┬────────────┐
│ 仅退款 │ 退货退款 │ 换货 │ 维修 │
│ (未发货) │ (已收货) │ │ │
└────────────┴────────────┴────────────┴────────────┘
退货退款流程:
用户申请 → 商家审核 → 用户寄回 → 商家验收 → 退款处理
↓ ↓ ↓ ↓ ↓
[创建工单] [自动/人工] [生成退货单] [质检确认] [原路退回]
库存分层模型:
┌─────────────────────────────────────────────────┐
│ 总库存 (Total) │
│ 1000件 │
└─────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────┐
│ 可售库存 占用库存 锁定库存 │
│ 800件 150件 50件 │
│ (Available) (Occupied) (Locked) │
└─────────────────────────────────────────────────┘
库存扣减流程:
下单 → 预占库存 → 支付 → 扣减库存 → 发货 → 更新实物库存
1. 库存分片策略
分片维度:
- 按SKU分片:适合单品爆款
- 按仓库分片:适合多仓发货
- 按商家分片:适合平台模式
Redis集群架构:
┌──────────────────────────────────────┐
│ Redis Cluster (16节点) │
├──────┬──────┬──────┬──────┬─────────┤
│Node1 │Node2 │Node3 │Node4 │ ... │
│SKU │SKU │SKU │SKU │ │
│1-1M │1M-2M │2M-3M │3M-4M │ │
└──────┴──────┴──────┴──────┴─────────┘
2. 库存扣减优化
# 基于Lua脚本的原子操作
DEDUCT_INVENTORY_SCRIPT = """
local key = KEYS[1]
local num = tonumber(ARGV[1])
local stock = redis.call('GET', key)
if tonumber(stock) >= num then
redis.call('DECRBY', key, num)
return 1
else
return 0
end
"""
预警规则引擎:
┌───────────────────────────────────────────┐
│ 规则配置 │
│ - 库存低于安全库存 │
│ - 销售速度异常 │
│ - 季节性商品库存 │
└───────────────────────────────────────────┘
↓
┌───────────────────────────────────────────┐
│ 触发动作 │
│ - 发送预警通知 │
│ - 自动创建补货单 │
│ - 调整营销策略 │
└───────────────────────────────────────────┘
┌─────────────────────────────────────────────────┐
│ 物流中台 │
├──────────┬──────────┬──────────┬────────────────┤
│ 订单分配 │ 路由优化 │ 运力调度 │ 轨迹追踪 │
│ 引擎 │ 算法 │ 系统 │ 服务 │
└──────────┴──────────┴──────────┴────────────────┘
↓
┌─────────────────────────────────────────────────┐
│ 物流服务商 │
│ 顺丰 | 京东物流 | 菜鸟 | 四通一达 | 即时配送 │
└─────────────────────────────────────────────────┘
1. 多仓库存分配
分仓维度:
- 地理位置:就近发货
- 商品属性:保税/国内
- 时效要求:次日达/普通
算法模型:
minimize: Σ(distance[i][j] × quantity[i][j])
subject to:
- Σquantity[i][j] = demand[j] // 满足需求
- Σquantity[i][j] ≤ stock[i] // 库存约束
- delivery_time ≤ promise_time // 时效约束
2. 智能路由决策
配送模式选择:
┌────────────────────────────────────────┐
│ 订单特征分析 │
│ 位置 | 时效 | 商品 | 用户偏好 │
└────────────────────────────────────────┘
↓
┌────────────────────────────────────────┐
│ 配送方式决策 │
├──────────┬──────────┬─────────────────┤
│ 快递配送 │ 同城配送 │ 门店自提 │
│ 1-3天 │ 2小时达 │ 即时可取 │
└──────────┴──────────┴─────────────────┘
┌─────────────────────────────────────────────────┐
│ 营销业务层 │
│ 优惠券 | 满减 | 秒杀 | 拼团 | 直播 | 分销 │
└─────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────┐
│ 营销能力层 │
├──────────┬──────────┬──────────┬────────────────┤
│ 规则引擎 │ 活动引擎 │ 权益中心 │ 计算引擎 │
│ (Drools) │ │ │ │
└──────────┴──────────┴──────────┴────────────────┘
↓
┌─────────────────────────────────────────────────┐
│ 基础服务层 │
│ 用户画像 | 商品标签 | 库存服务 | 价格服务 │
└─────────────────────────────────────────────────┘
优惠券分类:
┌────────────────────────────────────────────────┐
│ 优惠券类型 │
├──────────┬──────────┬──────────┬──────────────┤
│ 满减券 │ 折扣券 │ 现金券 │ 运费券 │
│ 满100-20 │ 8折优惠 │ 直减10元 │ 免运费 │
├──────────┼──────────┼──────────┼──────────────┤
│ 品类券 │ 品牌券 │ 单品券 │ 店铺券 │
│ 美妆专享 │ 指定品牌 │ 指定SKU │ 店铺通用 │
└──────────┴──────────┴──────────┴──────────────┘
状态流转:
创建 → 审核 → 投放 → 领取 → 使用 → 过期/作废
券池管理:
┌─────────────────────────────────────────┐
│ 总券池 (100万张) │
└─────────────────────────────────────────┘
↓
┌─────────────────────────────────────────┐
│ 已领取 未领取 已使用 │
│ 30万张 65万张 5万张 │
└─────────────────────────────────────────┘
1. 预热与限流
预热策略:
- 提前加载券信息到Redis
- 预分配券码到不同节点
- CDN静态资源预热
限流方案:
- 漏斗算法:平滑流量
- 令牌桶:控制QPS
- 分布式限流:Redis+Lua
2. 库存扣减优化
-- Redis Lua脚本实现原子扣减
local coupon_key = KEYS[1]
local user_key = KEYS[2]
local num = tonumber(ARGV[1])
-- 检查库存
local stock = redis.call('GET', coupon_key)
if tonumber(stock) < num then
return 0 -- 库存不足
end
-- 检查用户是否已领取
local user_count = redis.call('GET', user_key)
if user_count and tonumber(user_count) >= 1 then
return -1 -- 已领取
end
-- 扣减库存
redis.call('DECRBY', coupon_key, num)
redis.call('INCR', user_key)
return 1 -- 成功
活动模板:
┌──────────────────────────────────────────┐
│ 活动基础信息 │
│ 名称 | 时间 | 规则 | 预算 | 商品范围 │
└──────────────────────────────────────────┘
↓
┌──────────────────────────────────────────┐
│ 促销规则配置 │
│ - 满减规则:满X元减Y元 │
│ - 阶梯优惠:满100-10,满200-30 │
│ - 组合优惠:A+B打8折 │
│ - N件M折:3件7折 │
└──────────────────────────────────────────┘
1. 优惠计算流程
原价 → 商品优惠 → 店铺优惠 → 平台优惠 → 最终价格
100 → -10 → -5 → -15 → 70
优先级规则:
1. 互斥优惠:只能选择一种
2. 叠加优惠:可以累加使用
3. 优先级排序:按配置顺序计算
2. 实时价格计算
// 价格计算管道
public class PriceCalculatePipeline {
List<PriceCalculator> calculators = Arrays.asList(
new ItemDiscountCalculator(), // 商品折扣
new CouponCalculator(), // 优惠券
new PromotionCalculator(), // 促销活动
new MemberDiscountCalculator() // 会员优惠
);
public Price calculate(OrderContext context) {
Price price = context.getOriginalPrice();
for (PriceCalculator calc : calculators) {
price = calc.calculate(price, context);
}
return price;
}
}
┌─────────────────────────────────────────────┐
│ CDN静态页面 │
│ 秒杀页面 | 倒计时 | 商品信息 │
└─────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────┐
│ 接入层 │
│ Nginx (限流) + WAF (防刷) │
└─────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────┐
│ 秒杀服务集群 │
│ 资格校验 | 库存扣减 | 订单生成 │
└─────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────┐
│ 消息队列 (Kafka) │
│ 异步处理订单 | 发送通知 │
└─────────────────────────────────────────────┘
1. 多级缓存
请求路径:
CDN → Nginx Cache → Redis → 数据库
↓ ↓ ↓ ↓
90% 5% 4% 1%
命中 命中 命中 回源
2. 削峰填谷
┌─────────────────────────────────────────────┐
│ 直播推流端 │
│ 主播App | OBS | 导播台 │
└─────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────┐
│ 流媒体服务 │
│ 推流服务 | 转码服务 | CDN分发 │
└─────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────┐
│ 直播互动服务 │
│ 实时弹幕 | 点赞 | 商品讲解 | 红包雨 │
└─────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────┐
│ 电商转化服务 │
│ 商品卡片 | 购物车 | 优惠券 | 订单 │
└─────────────────────────────────────────────┘
数据流处理:
用户行为 → Kafka → Flink → 实时指标
↓ ↓ ↓ ↓
[点击] [采集] [计算] [展示]
[购买] [聚合] [大屏]
[互动] [分析] [决策]
实时指标:
- 观看人数 (UV/PV)
- 互动率 (点赞/评论)
- 转化率 (点击/购买)
- GMV (实时成交额)
用户路径:
浏览笔记 → 种草商品 → 查看详情 → 加购下单 → 分享体验
↓ ↓ ↓ ↓ ↓
[内容推荐] [商品关联] [转化漏斗] [交易闭环] [内容生产]
技术实现:
- 商品标签与内容标签统一
- 基于图神经网络的关联推荐
- 用户行为序列建模
- 内容质量与商品销量关联分析
备战时间线:
T-60天:容量评估,压测计划
T-30天:全链路压测,问题修复
T-7天:预演,降级预案准备
T-1天:系统检查,应急演练
T时刻:实时监控,快速响应
技术准备:
┌──────────────────────────────────────┐
│ 容量保障 │
│ - 10倍容量冗余 │
│ - 自动扩容机制 │
│ - 多机房部署 │
├──────────────────────────────────────┤
│ 稳定性保障 │
│ - 限流降级 │
│ - 熔断机制 │
│ - 故障自愈 │
├──────────────────────────────────────┤
│ 应急保障 │
│ - 一键降级 │
│ - 快速回滚 │
│ - 应急预案 │
└──────────────────────────────────────┘
1. 数据库优化
2. 服务优化
事务模式选择:
┌────────────────────────────────────────────┐
│ 场景 │ 方案 │ 特点 │
├────────────────┼──────────────┼───────────┤
│ 强一致性要求高 │ 2PC/3PC │ 性能较低 │
│ 最终一致性可接受│ TCC │ 灵活性高 │
│ 异步处理场景 │ Saga │ 长事务 │
│ 本地事务为主 │ 消息事务 │ 可靠性高 │
└────────────────┴──────────────┴───────────┘
| 指标类型 | 2019年 | 2021年 | 2023年 | 2024年 |
|---|---|---|---|---|
| 日订单量 | 10万+ | 50万+ | 200万+ | 500万+ |
| GMV | 50亿 | 200亿 | 500亿 | 800亿+ |
| SKU数量 | 50万 | 200万 | 500万 | 1000万+ |
| 商家数量 | 5000+ | 3万+ | 10万+ | 20万+ |
| 支付成功率 | 99.5% | 99.7% | 99.9% | 99.95% |
| 系统模块 | QPS峰值 | RT(P99) | 可用性 | 说明 |
|---|---|---|---|---|
| 商品搜索 | 100万 | 50ms | 99.99% | ES集群 |
| 下单接口 | 50万 | 100ms | 99.99% | 核心链路 |
| 支付网关 | 30万 | 80ms | 99.995% | 多通道 |
| 库存服务 | 100万 | 30ms | 99.99% | Redis |
| 秒杀系统 | 200万 | 20ms | 99.9% | 纯内存 |
应用场景:
┌────────────────────────────────────────────────┐
│ AI赋能电商全链路 │
├──────────────┬─────────────┬──────────────────┤
│ 智能选品 │ 智能定价 │ 智能客服 │
│ 趋势预测 │ 动态调价 │ 24小时在线 │
│ 爆款挖掘 │ 个性化定价 │ 多语言支持 │
├──────────────┼─────────────┼──────────────────┤
│ 智能营销 │ 智能物流 │ 智能风控 │
│ 精准投放 │ 路径优化 │ 实时识别 │
│ 效果预测 │ 库存预测 │ 自动处置 │
└──────────────┴─────────────┴──────────────────┘
开放能力:
┌─────────────────────────────────────────┐
│ 小红书开放平台 │
├──────────┬──────────┬──────────────────┤
│ API开放 │ 数据开放 │ 能力开放 │
│ 商品API │ 销售数据 │ AI能力 │
│ 订单API │ 用户画像 │ 营销工具 │
│ 物流API │ 行业报告 │ 数据分析 │
└──────────┴──────────┴──────────────────┘
小红书电商技术架构的演进,是一个从简单到复杂、从单一到多元、从国内到全球的发展历程。通过持续的技术创新和架构优化,小红书成功构建了”内容+电商”的独特商业模式,为用户提供了从种草到购买的完整体验闭环。
未来,随着AI、区块链、元宇宙等新技术的发展,小红书电商将继续探索创新,为用户创造更大价值,为行业发展贡献更多可能。
本章完