参考答案:
【问题2】(12分)
(a)异步
(b)价格发布子系统
(c)商品价格数据时间戳
(d)商品从价格库
(e)回源写逻辑流程
(f)促销信息库
(g)商品信息库
(h)商品从价格库
【问题3】(7分)
(a) ×
(b) √
(c) ×
(d) √
详细解析:
本题考查系统分析过程中功能分解、业务场景建模和设计原则等知识点 。
此类题目要求考生认真阅读题目对系统功能的描述,理解系统的功能组成,并对功能进行分类,在此基础上对系统核心业务进行分析与建模,并针对系统业务特点给出合适的设计原则。
【问题1】
根据题干描述,该系统具有首页、商品列表、商品促销、商品库存、商品 价格、订 单中心、订单结算、支付、用户管理、频道〈用于区分不同类别的商品〉、搜索、购物车等主要功能,并可知系统分为网站子系统、交易子系统和业务服务子系统三个子系统。进一步分析可知网站子系统主要负责商品的展示与浏览,交易子系统主要负责订单、结算、支付、购物车等与系统交易相关的业务内容,而业务服务子系统则关注促销、库存、价格、用户管理等功能。根据上述分析,可以得到如下表所示的对应关系。
首先需要对图 5-1 描述的业务流程进行深入分析,可以看出该业务流程可以分为商品价格写逻辑流程、商品价格读逻辑流程和回源写逻辑流程三个子流程。其中商品价格写逻辑流程的主要过程是更新某个商品的价格,其核心思想是采用异步写策略提高系统的性能,并采用时间戳区分商品价格是否为最新,主要流程是采销后台系统更新价格,写商品信息库,并通过异步任务通知价格发布子系统更新促销信息库,最后更新促销信息库,更新商品主价格库的商品价格数据时间戳。商品价格读逻辑流程的核心是如何提高性能,因此其主要步骤是首先通过 Web 服务器读取商品从价格库中的价格数据,无过期则直接返回用户,如果过期或没有命中则执行回源写逻辑流程,取最新数据返回用户。回源写逻辑流程的主要功能是更新商品主数据库,并同步从数据库,其主要流程是价格服务子系统读取促销信息库和商品信息库,计算商品价格后返回用户,同时异步写商品主价格库。最后商品主价格库同步数据到商品从价格库。
【问题 3】
本问题主要考查考生对于系统分析的理解,下面依次分析:
(1)垂直扩展——分流原则。前置的 Web服务器和商品从价格库的架构是无状态的。商品从价格库可以存放全部商品价格信息。这样的设计可以垂直扩展,瓶颈在于商品主价格库的数据复制能力。
该描述中“前置的 Web 服务器和商品从价格库的架构是无状态的。商品从价格库可以存放全部商品价格信息”,但是描述的过程是水平扩展,而不是垂直扩展。该描述是错误的。
(2)保护系统——降级原则。在系统实现时可以通过开关机制控制回源流程。系统降级时设置为不回源,业务影响为价格不更新,但交易系统的价格为最新价格。
该描述的核心思想是当系统负载过重时,可以通过关闭相对耗时的回源流程对系统进行降级,进而保护系统,并对系统的业务逻辑影响较小。该描述是正确的。
(3)提高性能——读写分离原则。系统实现时需要将读写逻辑分成几个闭环,互相耦合完成系统功能。
该描述的原则思路正确,但是将各个逻辑紧密耦合这一个表述显然与原则相违背,因此总体描述是错误的。
(4)提高性能——异步化原则。商品价格发布时异步写商品主价格库,回源异步写商品主价格库。
异步是分布式系统中提升性能的主要方法,因此该描述是正确的。