【系统架构师-案例题-分布式数据缓存架构】22年下(3)分布式仓储货物管理系统


一、完整题目

【说明】

某大型电商平台建立了一个在线B2B商店系统,并在全国多地建设了货物仓储中心,通过提前备货的方式来提高货物的运送效率。但是在运营过程中,发现会出现很多跨仓储中心调货从而延误货物运送的情况。为此,该企业计划新建立一个全国仓储货物管理系统,在实现仓储中心常规管理功能之外,通过对在线B2B商店系统中订单信息进行及时的分析和挖掘,并通过大数据分析预测各地仓储中心中各类货物的配置数量,从而提高运送效率,降低成本。

当用户通过在线B2B商店系统选购货物时,全国仓储货物管理系统会通过该用户所在地址、商品类别以及仓储中心的货物信息和地址,实时为用户订单反馈货物起运地(某仓储中心)并预测送达时间。反馈送达时间的响应时间应小于1秒。

为满足反馈送达时间功能的性能要求,设计团队建议在全国仓储货物管理系统中采用数据缓存集群的方式,将仓储中心基本信息、商品类别以及库存数量放置在内存的缓存中,而仓储中心的其它商品信息则存储在数据库系统。

【问题1】(9分)

设计团队在讨论缓存和数据库的数据一致性问题时,李工建议采取数据实时同步更新方案,而张工则建议采用数据异步准实时更新方案。

请用200字以内的文字,简要介绍两种方案的基本思路,说明全国仓储货物管理系统应该采用哪种方案,并说明采取该方案的原因。

【问题2】(9分)

随着业务的发展,仓储中心以及商品的数量日益增加,需要对集群部署多个缓存节点,提高缓存的处理能力。李工建议采用缓存分片方法,把缓存的数据拆分到多个节点分别存储,减轻单个缓存节点的访问压力,达到分流效果。

缓存分片方法常用的有哈希算法和一致性哈希算法,李工建议采用一致性哈希算法来进行分片。请用200字以内的文字简要说明两种算法的基本原理,并说明李工采用一致性哈希算法的原因。

【问题3】(7分)

全国仓储货物管理系统开发完成,在运营一段时间后,系统维护人员发现大量黑客故意发起非法的商品送达时间查询请求,造成了缓存击穿。张工建议尽快采用布隆过滤器方法解决。请用200字以内的文字解释布隆过滤器的工作原理和优缺点。


二、完整参考答案

【问题1】

  1. 方案思路
    • 数据实时同步更新方案:数据库数据更新时,同步更新缓存数据,保证缓存与数据库的强一致性
    • 数据异步准实时更新方案:数据库更新后,通过消息队列/发布订阅异步更新缓存,仅保证最终一致性
  2. 选型与理由
    本系统应采用数据实时同步更新方案
    理由:系统要求订单反馈响应时间<1秒,且库存、仓储信息属于强一致性要求极高的业务场景,异步方案可能导致缓存数据滞后,引发调货、超时等业务问题,实时方案可保障数据准确性与业务正确性。

【问题2】

  1. 算法原理
    • 普通哈希分片:对key做哈希运算后,按节点数取模分配数据,类似取余操作,余数相同的key分配到同一节点。
    • 一致性哈希分片:将存储节点和数据key都映射到哈希环上,数据按顺时针方向存储到第一个遇到的节点上。
  2. 选型理由
    采用一致性哈希算法的原因:普通哈希分片在节点扩容/缩容时,需重新计算几乎所有key的分配,导致大量数据迁移;一致性哈希仅需迁移少量数据,支持动态扩缩容,适配仓储、商品数量无上限的业务场景,保障系统扩展性。

【问题3】

  1. 工作原理
    布隆过滤器由一个超长二进制向量和一系列随机映射函数组成,用于快速判断元素是否存在于集合中。将集合中元素通过k个哈希函数映射到二进制向量的k个位置并置1;查询时,若对应位置全为1则判定元素存在,否则不存在,可直接过滤不存在的查询,避免缓存击穿。
  2. 优缺点
    • 优点:空间效率极高、查询速度远快于普通算法、无需存储元素本身,适合高并发场景。
    • 缺点:存在一定误判率(误将不存在元素判定为存在)、元素删除困难、无法获取元素本身。

三、完整解析

【问题1解析】

缓存与数据库一致性是缓存架构的核心问题,两种方案的适用场景完全不同:

  • 实时同步方案:属于强一致性方案,适用于金融、库存等对数据准确性要求极高的场景,缺点是增加了单次请求的耗时,需通过优化同步逻辑保障性能。
  • 异步准实时方案 :属于最终一致性方案,适用于商品详情、资讯等对实时性要求不高的场景,优点是性能高、不阻塞主流程。
    本系统的库存、仓储信息直接影响订单履约,数据不一致会导致严重的业务事故,因此必须选择实时同步方案。

【问题2解析】

缓存分片是缓存集群横向扩展的核心技术,两种算法的核心差异在于动态扩缩容的成本

  • 普通哈希分片的取余逻辑,导致节点数量变化时,几乎所有key的哈希取余结果都会改变,引发全量数据迁移,系统可用性大幅下降,仅适用于节点数量固定的场景。
  • 一致性哈希通过哈希环的设计,将数据迁移范围控制在新增/删除节点的相邻区间,仅需迁移少量数据,大幅降低扩缩容对系统的影响,是分布式缓存(如Redis Cluster)的主流分片方案,完美适配本系统业务量持续增长的需求。

【问题3解析】

缓存击穿是指大量请求查询缓存中不存在的key,导致请求直接穿透到数据库,引发数据库压力骤增。布隆过滤器是解决该问题的经典方案:

  • 核心价值:在缓存层前增加一层过滤,直接拦截不存在的key的请求,避免数据库被打垮,同时空间占用极低,适合海量数据场景。
  • 局限性:误判率可通过调整二进制向量长度、哈希函数数量优化,但无法完全消除;删除元素需使用计数布隆过滤器等变种方案,增加了实现复杂度。
  • 适用场景:本系统中,可将所有合法的商品ID、仓储ID存入布隆过滤器,非法查询直接被拦截,从根源解决缓存击穿问题。

四、题目归类

本题属于软考系统架构设计师考试中,分布式缓存架构设计类案例分析题,核心考点覆盖:

  1. 缓存与数据库一致性方案选型
  2. 分布式缓存分片算法(一致性哈希)
  3. 缓存击穿解决方案(布隆过滤器)
    是互联网电商、物流系统架构设计的经典高频考点。
相关推荐
北有树3 小时前
Redis专题面试题总结
数据库·redis·缓存
仗剑_走天涯4 小时前
hadoop 中 yarn node -list 显示0 问题解决
大数据·hadoop·分布式
Hui Baby4 小时前
长期记忆系统架构
系统架构
谢白羽4 小时前
多集群/分布式 LLM 推理方案全景:2026 年选型指南
分布式·vllm·sglang·llm-d
Arva .4 小时前
RabbitMQ消费者处理失败
分布式·rabbitmq
roman_日积跬步-终至千里4 小时前
【系统架构师-案例题-Web应用系统架构设计】22年(4)基于边缘计算的智能门禁系统
人工智能·系统架构·边缘计算
bKYP953cL5 小时前
Prompt 缓存的四种策略:从精确匹配到语义检索
spring·缓存·prompt
yu85939585 小时前
基于MSP430 LaunchPad的蔬菜基地分布式无线低功耗温湿度监测系统
分布式·stm32·嵌入式硬件
做个文艺程序员1 天前
私有 LLM 多机多卡分布式推理:Pipeline Parallel vs Tensor Parallel 踩坑全记录
人工智能·分布式