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

张开发
2026/4/9 17:25:16 15 分钟阅读

分享文章

【系统架构师-案例题-分布式数据缓存架构】22年下(3)分布式仓储货物管理系统
一、完整题目【说明】某大型电商平台建立了一个在线B2B商店系统并在全国多地建设了货物仓储中心通过提前备货的方式来提高货物的运送效率。但是在运营过程中发现会出现很多跨仓储中心调货从而延误货物运送的情况。为此该企业计划新建立一个全国仓储货物管理系统在实现仓储中心常规管理功能之外通过对在线B2B商店系统中订单信息进行及时的分析和挖掘并通过大数据分析预测各地仓储中心中各类货物的配置数量从而提高运送效率降低成本。当用户通过在线B2B商店系统选购货物时全国仓储货物管理系统会通过该用户所在地址、商品类别以及仓储中心的货物信息和地址实时为用户订单反馈货物起运地某仓储中心并预测送达时间。反馈送达时间的响应时间应小于1秒。为满足反馈送达时间功能的性能要求设计团队建议在全国仓储货物管理系统中采用数据缓存集群的方式将仓储中心基本信息、商品类别以及库存数量放置在内存的缓存中而仓储中心的其它商品信息则存储在数据库系统。【问题1】9分设计团队在讨论缓存和数据库的数据一致性问题时李工建议采取数据实时同步更新方案而张工则建议采用数据异步准实时更新方案。请用200字以内的文字简要介绍两种方案的基本思路说明全国仓储货物管理系统应该采用哪种方案并说明采取该方案的原因。【问题2】9分随着业务的发展仓储中心以及商品的数量日益增加需要对集群部署多个缓存节点提高缓存的处理能力。李工建议采用缓存分片方法把缓存的数据拆分到多个节点分别存储减轻单个缓存节点的访问压力达到分流效果。缓存分片方法常用的有哈希算法和一致性哈希算法李工建议采用一致性哈希算法来进行分片。请用200字以内的文字简要说明两种算法的基本原理并说明李工采用一致性哈希算法的原因。【问题3】7分全国仓储货物管理系统开发完成在运营一段时间后系统维护人员发现大量黑客故意发起非法的商品送达时间查询请求造成了缓存击穿。张工建议尽快采用布隆过滤器方法解决。请用200字以内的文字解释布隆过滤器的工作原理和优缺点。二、完整参考答案【问题1】方案思路数据实时同步更新方案数据库数据更新时同步更新缓存数据保证缓存与数据库的强一致性。数据异步准实时更新方案数据库更新后通过消息队列/发布订阅异步更新缓存仅保证最终一致性。选型与理由本系统应采用数据实时同步更新方案。理由系统要求订单反馈响应时间1秒且库存、仓储信息属于强一致性要求极高的业务场景异步方案可能导致缓存数据滞后引发调货、超时等业务问题实时方案可保障数据准确性与业务正确性。【问题2】算法原理普通哈希分片对key做哈希运算后按节点数取模分配数据类似取余操作余数相同的key分配到同一节点。一致性哈希分片将存储节点和数据key都映射到哈希环上数据按顺时针方向存储到第一个遇到的节点上。选型理由采用一致性哈希算法的原因普通哈希分片在节点扩容/缩容时需重新计算几乎所有key的分配导致大量数据迁移一致性哈希仅需迁移少量数据支持动态扩缩容适配仓储、商品数量无上限的业务场景保障系统扩展性。【问题3】工作原理布隆过滤器由一个超长二进制向量和一系列随机映射函数组成用于快速判断元素是否存在于集合中。将集合中元素通过k个哈希函数映射到二进制向量的k个位置并置1查询时若对应位置全为1则判定元素存在否则不存在可直接过滤不存在的查询避免缓存击穿。优缺点优点空间效率极高、查询速度远快于普通算法、无需存储元素本身适合高并发场景。缺点存在一定误判率误将不存在元素判定为存在、元素删除困难、无法获取元素本身。三、完整解析【问题1解析】缓存与数据库一致性是缓存架构的核心问题两种方案的适用场景完全不同实时同步方案属于强一致性方案适用于金融、库存等对数据准确性要求极高的场景缺点是增加了单次请求的耗时需通过优化同步逻辑保障性能。异步准实时方案属于最终一致性方案适用于商品详情、资讯等对实时性要求不高的场景优点是性能高、不阻塞主流程。本系统的库存、仓储信息直接影响订单履约数据不一致会导致严重的业务事故因此必须选择实时同步方案。【问题2解析】缓存分片是缓存集群横向扩展的核心技术两种算法的核心差异在于动态扩缩容的成本普通哈希分片的取余逻辑导致节点数量变化时几乎所有key的哈希取余结果都会改变引发全量数据迁移系统可用性大幅下降仅适用于节点数量固定的场景。一致性哈希通过哈希环的设计将数据迁移范围控制在新增/删除节点的相邻区间仅需迁移少量数据大幅降低扩缩容对系统的影响是分布式缓存如Redis Cluster的主流分片方案完美适配本系统业务量持续增长的需求。【问题3解析】缓存击穿是指大量请求查询缓存中不存在的key导致请求直接穿透到数据库引发数据库压力骤增。布隆过滤器是解决该问题的经典方案核心价值在缓存层前增加一层过滤直接拦截不存在的key的请求避免数据库被打垮同时空间占用极低适合海量数据场景。局限性误判率可通过调整二进制向量长度、哈希函数数量优化但无法完全消除删除元素需使用计数布隆过滤器等变种方案增加了实现复杂度。适用场景本系统中可将所有合法的商品ID、仓储ID存入布隆过滤器非法查询直接被拦截从根源解决缓存击穿问题。四、题目归类本题属于软考系统架构设计师考试中分布式缓存架构设计类案例分析题核心考点覆盖缓存与数据库一致性方案选型分布式缓存分片算法一致性哈希缓存击穿解决方案布隆过滤器是互联网电商、物流系统架构设计的经典高频考点。

更多文章