订单系统设计 --- 订单中心存储方案

本文主要介绍了一个垂直领域电商平台的订单中心设计,包括C端、B端和M端的需求分析。存储方案选择了MySQL配合ES,强调了数据幂等性、一致性以及JSON数据同步的问题。为保证数据一致性,提出了数据比对法和延时检测法作为解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目标

  为某垂直领域的电商平台设计一个订单中心,用户、商家和运营可以对订单中心进行不同的操作;

需求分析

在这里插入图片描述

  • C端:访问量大,数据的实时性和一致性要求高,主要是订单列表和订单详情的查询;
  • B端:访问量适中,对数据的实时性和一致性有一定容忍度,主要是B端展示的几个维度的分页查询;
  • M端:访问量低,查询条件复杂多变,查询的数据量大,对系统可用性、数据的实时性和一致性等容忍度最高;

存储方案设计

在这里插入图片描述

MySQL写入ES注意事项

  • 数据幂等性:相同数据插入ES时需要保持幂等性,更新或者忽略;
  • 数据一致性:数据的最终一致性要有时间上限,即最多容忍多长时间的数据不一致;
  • JSON数据同步:数据库中的JSON数据同步到ES后会变成JSON字符串,无法精确查询,只能模糊查询,影响查询性能,同步过程中需要数据清洗;

数据一致性方案

数据比对法

  启动一个任务(存量数据一次性,增量数据周期性),逐条比对,不一致时进行修复;

延时检测法

  方案思路:数据同步链路中加入延时检测(计算消息接受的时间与消息发出时间差值),当单位时间内数据延时比例超过高水位,则开启数据补偿链路,直接从数据库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值