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

试题一

某大型电商平台建立一个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字以内文字,从数据通信、数据安全和系统性能等方面简要分析在传统云计算模型中引入边缘计算模型的优势。

解析:

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/67451.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么是接口测试,如何做接口测试?

比起点点点的功能测试,“接口测试”显得专业又高大上,也因此让有些初级测试人员“望而生畏”。别担心,其实接口测试也是功能测试的一种,它是针对接口进行的功能测试。 写在前面:本文参考了茹炳晟老师的《测试工程师 全…

opencv-4.5.2-android-sdk.zip安装教程

opencv-4.5.2-android-sdk.zip: 下载链接:百度网盘 请输入提取码 提取码:s0p2 导入模块的方法: ①、导入模块 ②、定位到sdk目录 点击ok就行,就导入成功了。导入成功后会多出一个可展开的opencv文件夹(自己命名的),一定要能展…

Mediasoup在node.js下多线程实现

mediasoup基于socket.io的交互消息来完成join-room的请求过程。Join的过程,实际就是获取stream的过程,也就是视频加载时间(video-load-speed)。在RTMP系统,视频加载时间是秒开。Mediasoup给出的第一个frame是I-frame,但由于交互的…

明星录制祝福视频:传递温情与关怀的独特方式

在当今社交媒体和数字化时代,明星录制祝福视频已经成为一种新颖而独特的方式,用来表达温馨祝福、分享喜悦,或者为特殊的时刻增添一份特别的意义。无论是生日、结婚、毕业,还是节日、活动等,明星录制的祝福视频能够让人…

规避【虚拟专线技术】使用风险实现业务系统安全

本文为作者学习文章,按作者习惯写成,如有错误或需要追加内容请留言(不喜勿喷) 本文为追加文章,后期慢慢追加 一、技战法描述 VPN是利用Internet等公共网络基础设施,通过隧道加密通信技 术,为用…

QT实现TCP通信(服务器与客户端搭建)

一、TCP通信框架 二、QT中的服务器操作 创建一个QTcpServer类对象,该类对象就是一个服务器调用listen函数将该对象设置为被动监听状态,监听时,可以监听指定的ip地址,也可以监听所有主机地址,可以通过指定端口号&#x…

pdf用什么软件打开?介绍几种常用打开方法

pdf用什么软件打开?PDF是一种广泛使用的文件格式,由于其跨平台和易于共享的特点,它已成为许多人在日常工作和学习中使用的首选文件格式。但是,有时候我们可能会遇到一些问题,比如不知道用什么软件打开PDF文件&#xff…

【系统编程】线程池以及API接口简介

(꒪ꇴ꒪ ),Hello我是祐言QAQ我的博客主页:C/C语言,数据结构,Linux基础,ARM开发板,网络编程等领域UP🌍快上🚘,一起学习,让我们成为一个强大的攻城狮&#xff0…

数据结构与算法-插入希尔归并

一:排序引入 我们通常从哪几个方面来分析一个排序算法? 1.时间效率:决定了算法运行多久,O(1) 2.空间复杂度: 3.比较次数&交换次数:排序肯定会牵涉到两个操作,一个比较是肯定的。…

《存储IO路径》专题:块设备层多队列blk-mq架构

我们想象一下,你是一个餐厅的厨师,你要准备很多不同的菜肴,而每种菜肴需要不同的食材和烹饪时间。如果每道菜都按照需要的顺序来准备,那么你的工作效率一定会非常低。为了提高效率,你会怎么做呢? 在linux架…

uni-app 之 v-on:click点击事件

uni-app 之 v-on:click点击事件 image.png <template><!-- vue2的<template>里必须要有一个盒子&#xff0c;不能有两个&#xff0c;这里的盒子就是 view--><view>--- v-on:click点击事件 ---<view v-on:click"onclick">{{title}}<…

Git 回顾小结

Git是一个免费开源&#xff0c;分布式的代码版本控制系统&#xff0c;版主开发团队维护代码 作用&#xff1a;记录代码内容&#xff0c;切换代码版本&#xff0c;多人开发时高校合并代码内容 Git常用命令 命令作用注意git -v查看Git版本git init初始化本地Git仓库git add 文件…

QTday5

一、客户端 二、服务器 三、配置图像处理环境 四、XMind思维导图

vscode新建vue3文件模板

输入快捷新建的名字 enter 确认后在文件中输入以下内容 {// Place your snippets for vue here. Each snippet is defined under a snippet name and has a prefix, body and// description. The prefix is what is used to trigger the snippet and the body will be expand…

无需租用云服务器:使用Linux本地搭建web服务并实现内网穿透发布公网访问的详细教程

文章目录 前言1. 本地搭建web站点2. 测试局域网访问3. 公开本地web网站3.1 安装cpolar内网穿透3.2 创建http隧道&#xff0c;指向本地80端口3.3 配置后台服务 4. 配置固定二级子域名5. 测试使用固定二级子域名访问本地web站点 前言 在web项目中,部署的web站点需要被外部访问,则…

前端自动化部署,Devops,CI/CD

DevOps 提到 Jenkins&#xff0c;想到的第一个概念就是 CI/CD 在这之前应该再了解一个概念。 DevOps Development 和 Operations 的组合&#xff0c;是一种方法论&#xff0c;并不特指某种技术或者工具。DevOps 是一种重视 Dev 开发人员和 Ops 运维人员之间沟通、协作的流程。…

Java on VS Code 8月更新|反编译器用户体验优化、新 Maven 项目工作流、代码高亮稳定性提升

作者&#xff1a;Nick Zhu 排版&#xff1a;Alan Wang 大家好&#xff0c;欢迎来到 Visual Studio Code for Java 的 8 月更新&#xff01;在这篇博客中&#xff0c;我们将为您提供有关反编译器支持的更多改进。此外&#xff0c;我们将展示如何创建没有原型的 Maven 项目以及一…

【C语言】字符函数,字符串函数,内存函数

大家好&#xff01;今天我们来学习C语言中的字符函数&#xff0c;字符串函数和内存函数。 目录 1. 字符函数 1.1 字符分类函数 1.2 字符转换函数 1.2.1 tolower&#xff08;将大写字母转化为小写字母&#xff09; 1.2.2 toupper&#xff08;将小写字母转化为大写字母&…

SpringMVC之入门

目录 1.SpringMVC工作流程 2.SpringMVC核心组件 2.1 DispatcherServlet 2.2 HandlerMapping 2.3 Handler 2.4 HandlerAdapter 2.5 ViewResolver 2.6 View 3.SpringMVC的入门 3.1 添加相关依赖 3.2 创建Spring-mvc.xml 3.3 配置web.xml 3.4 效果演示 4.静态资源处…

ios 运行ipa包 日志查看方式

方法一&#xff1a; 使用ideviceinstaller工具 # 安装ipa命令 brew install ideviceinstaller ideviceinstaller -i xxx.ipa# 查看运行日志 idevicesyslog# idevicesyslog 查找命令 idevicesyslog | grep test -A 3 -B 2 # 输出关键字所在行后3行&#xff0c;前2行) idevic…