2022年高级系统架构师下午分析试题四参考答案

试题四
某大型电商平台建立了一个在线B2B商店系统,并在全国多地建设了货物仓储中心,通过提前备货的方式来提高货物的运送效率。但是在运营过程中,发现会出现很多跨仓储中心调货从而延误货物运送的情况。为此,该企业计划新建立一个全国仓储货物管理系统,在实现仓储中心常规管理功能之外,通过对在线B2B商店系统中订单信息进行及时的分析和挖掘,并通过大数据分析预测各地仓储中心中各类货物的配置数量,从而提高运送效率,降低成本。当用户通过在线B2B商店系统选购货物时,全国仓储货物管理系统会通过该用户所在地址、商品类别以及仓储中心的货物信息和地址,实时为用户订单反馈货物起运地(某仓储中心)并预测送达时间。反馈送达时间的响应时间应小于1秒。为满足反馈送达时间功能的性能要求,设计团队建议在全国仓储货物管理系统中采用数据缓存集群的方式,将仓储中心基本信息、商品类别以及库存数量放置在内存的缓存中,而仓储中心的其它商品信息则存储在数据库系统。

问题1(9分)
设计团队在讨论缓存和数据库的数据一致性问题时,李工建议采取数据实时同步更新方案,而张工则建议采用数据异步准实时更新方案。请用200字以内的文字,简要介绍两种方案的基本思路,说明全国仓储货物管理系统应该采用哪种方案,并说明采取该方案的原因。

参考答案
实时方案:当数据库数据更新时,同时更新内存的缓存数据。
异步准实时更新方案:当数据库数据更新时,不立即更新缓存数据,而是将需要更新的操作记录成日志,再逐步排队完成更新。
本题中,建议采用准实时方案,理由是:题目中对性能有严格要求,要求1s内完成。实时同步方案最大的问题在于同步并发时的性能不可控。所以准实时方案才能确保该要求能实现。
问题2(9分)
随着业务的发展,仓储中心以及商品的数量日益增加,需要对集群部署多个缓存节点,提高缓存的处理能力。李工建议采用缓存分片方法,把缓存的数据拆分到多个节点分别存储,减轻单个缓存节点的访问压力,达到分流效果。缓存分片方法常用的有哈希算法和一致性哈希算法,李工建议采用一致性哈希算法来进行分片。请用200字以内的文字简要说明两种算法的基本原理,并说明李工采用一致性哈希算法的原因。
参考答案
哈希分片:通过对key进行hash操作,可以把数据分配到不同实例,这类似于取余操作,余数相同的,放在一个实例上。
一致性哈希分片:哈希分片的改进,把存储结点和需要存储的数据都存放在一个hash环上,数据根据hash值在hash环上按顺时针方向找到对应的数据存储结点上。
一致性哈希分片的方式在扩充缓存结点时,只需要对少量数据进行存储位置的更新,而哈希分片需要对几乎所有数据进行存储位置更新。
问题3(7分)
全国仓储货物管理系统开发完成,在运营一段时间后,系统维护人员发现大量黑客故意发起非法的商品送达时间查询请求,造成了缓存击穿。张工建议尽快采用布隆过滤器方法解决。请用200字以内的文字解释布隆过滤器的工作原理和优缺点。
参考答案
布隆过滤器通过一个很长的二进制向量和一系列随机映射函数来记录与识别某个数据是否在一个集合中。
如果数据不在集合中,能被识别出来,不需要到数据库中进行查找,所以能将数据库查询返回值为空的查询过滤掉。
优点:
1、占用内存小
2、查询效率高
3、不需要存储元素本身,在某些对保密要求比较严格的场合有很大优势
缺点:
1、有一定的误判率,即存在假阳性,不能准确判断元素是否在集合中。
2、不能获取元素本身
3、一般情况下不能从布隆过滤器中删除元素

你可能感兴趣的:(软考高级系统架构师,redis)