缓存案例-架构真题(二十二)

试题一

某大型电商平台建立一个B2B商店系统,并在全国建设了仓储中心。但是在运营过程中,发现很多跨仓储中心调货,延误运送。为此建立全国仓储系统,通过对订单的分析和挖掘,并通过大数据分析预测各类配置,降低成本。

当用户通过B2B商店下单,会通过用户的地址,商品类别,及其仓库信息和地址,来预测送达时间。反馈时间在1s内完成。

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

【问题1】(9分)

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

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

解析:

实时方案:数据库更新之后立马更新缓存。

准实时方案:数据库更新之后不立马更新缓存,而是记录在需要更新的日志中,再异步排队完成更新缓存。

在这里建议采用异步准实时方案,因为对代码性能优严格要求,在1s内返回下单成功数据。

【问题2】(9分)

随着业务发展,仓库中心数据日益增加,需要集群部署多个缓存节点,提高缓存处理能力,李工建议采用缓存分片方法,减缓单个节点访问压力。

缓存分片采用哈希算法或一致性哈希算法,李工建议采用一致性哈希算法来解决,200字说明理由。

解析:

哈希算法,会根据key的值进行哈希操作,类似取余操作,之后在取得相同的值放在一个实例。

一致性哈希算法,会根据key的值进行哈希操作,放入一个hash环上,数据根据hash值在哈希环上正时针方向找到对应的存储结点上。

【问题3】(7分)

全国仓储货物管理系统开发完成,在运营一段时间后,系统维护人员发现大量黑客故意发起商品送达请求,造成缓存穿透,张工建议采用布隆过滤器来解决这个问题,200字描述布隆过滤器的工作原理和优缺点。

解析:

布隆过滤器通过一个很长的二进制向量一系列随机映射函数来记录和识别某个数据是否在集合,当布隆过滤器返回为空,则直接表示数据不存在,不继续查询缓存和数据库。

布隆过滤器优点:

  1. 占内存小。
  2. 查询效率高。
  3. 不需要存储元素本身,所以在某些场合保密要求高。

布隆过滤器的缺点:

  1. 不能获取存储本身的元素。
  2. 有一定的误判,会存在假阳性,不能准确判断是否在集合。
  3. 一般情况下不能删除元素。

试题二

Web系统架构设计的叙述。

某公司拟开发一套边缘计算的智能门禁,用于如园区、新零售、工业现场等存在来访、被访业务的场景。来访者可以提前预约,在后台通过请求后,可以直接通过刷脸的方式进入园区。

基于项目需求,公司组建项目组,开讨论会,会议上,张工根据业务需求并结合边缘计算思想,提出本系统可以由访客注册模块、模拟训练模块、端侧识别模块与设备调度平台模块等四项功能组成。李工从技术层面指出该系统可以使用Flask框架与SSM框架为基础来开发后台服务器,将开发好的进行Docker部署,并使用MQTT协议对Docker进行管理。

【问题1】(5分)

MQTT协议在互联网行业广泛应用,请300字以内简要介绍MQTT协议?

解析:

MQTT(消息队列遥测传输)是一个基于发布/订阅的消息协议。它工作在TCP/IP协议之上,是为硬件性能低下的远程设备以及网络情况糟糕的情况下设计的发布/订阅协议。MQTT属于轻量、简单、开发和易于实现的。

【问题2】(14分)

在会议上,张工对模块进一步说明,访客注册模块 用于来访者提交申请与被访者确认申请,主要处理提交来访申请、来访申请审核业务,同时保存访客数据,为训练模块准备训练数据集:模型训练模块 用于使用访客数进行模型训练,为端侧设备的识别业务提供模型基础;端侧识别模块 在边缘门禁设备上运行,使用训练好的模型来识别来访人员,与云端服务协作完成访客来访的完整业务;设备调度平台模块用于对边缘门禁设备进行管理,管理员能够使用平台对边缘设备进行调度管理与状态监控,实现云端协同。

基于边缘计算的智能门禁系统架构图,请结合HTTP协议和MQTT协议特点,为1~6处选择合适协议,并结合张工描述,补齐7~10空白。

  1. 端侧边缘模型 (边缘设备)
  2. 模型训练模块
  3. 设备调度平台模块
  4. 访客注册模块
  1. HTTP
  2. MQTT
  3. MQTT
  4. MQTT
  5. HTTP
  6. HTTP

【问题3】

请用300字以内文字,从数据通信、数据安全和系统性能等方面简要分析在传统云计算模型中引入边缘计算模型的优势。

解析:

数据通信:通信更快捷,数据量更少。因为数据处理对比在边缘设备上完成,通信更多时候只传输匹配与结果的指令。

数据安全:数据以加密方式存储在需要用到的边缘设备上,比通过网络传递更安全,黑客也无法攻破一个节点使整个网络瘫痪。

系统性能:性能更高,以人脸识别为例,只需要本地化处理,不需要把数据传递到网络比较。

相关推荐
Vol火山1 小时前
云原生架构中的中间件容器化:优劣势与实践探索
云原生·中间件·架构·数字化
程序员JerrySUN2 小时前
BitBake 执行流程深度解析:从理论到实践
linux·开发语言·嵌入式硬件·算法·架构
dbcat官方2 小时前
2.微服务灰度发布落地实践(agent实现)
微服务·云原生·架构
繁川3 小时前
Spring Boot缓存预热实战指南
spring boot·spring·缓存
C182981825758 小时前
微服务面试题
微服务·架构
峰子201210 小时前
Go语言实现守护进程的挑战
开发语言·后端·面试·架构·golang·go
绝无仅有11 小时前
gozero项目日志Prometheus的配置与实战
后端·面试·架构
绝无仅有12 小时前
gozero项目日志收集与配置实战
后端·面试·架构
uhakadotcom12 小时前
2025年,最新的AI发展趋势是什么?
后端·面试·架构
Elcker13 小时前
KOI技术-事件驱动编程(Sping后端)
java·spring·架构