为帮助考生估分,编程学习网小编为大家整理了2022年系统分析师下午案例分析真题(四),希望对大家估分有帮助。
为方便广大考生考后估分对答案,编程学习网软考学院老师特向广大学员和网友搜集整理了2022年系统分析师下午案例分析真题(四),供大家参考。编程学习网软考学院老师也将在考后进行真题答案解析,想知道答案和解析的考生请进入编程学习网在线题库,估算自己的考试成绩,敬请广大考生关注。
试题四(共25分)
阅读以下关于微服务架构中的数据管理的叙述,在答题纸上回答问题1至问题3。
【说明】
某大型电商平台构建了一个在线B2B商店系统。该系统采用微服务架构,将系统功能分解为多个松散耦合且可独立部署的较小组件或服务。最终设计的系统包括了电商系统中常见的服务:客户服务、订单服务、支付服务等,其中:
1、 客户服务负责对客户相关的信息进行管理和维护;
2、 订单服务负责对订单信息的管理和维护;
3、支付服务负责对在线支付功能和信息的管理和维护等。
为了确保微服务之间的松耦合,每个服务都有自己的数据,其中,订单服务使用了 NoSQL 数据库,客户服务和支付服务使用了关系数据库。
李工认为由于不同服务使用了各自的不同数据库,使得跨服务操作可能存在数据不一致。比如订单与支付的数据一致性问题,系统通过订单服务在本地 NoSQL 数据库中创建订单记录,同时在支付服务的关系数据库中创建支付记录,且必须保证订单记录和支付记录的一致性,该问题在系统构建时需要考虑。
【问题1】(7分)
李工建议采用两阶段提交协议(2PC)来解决服务数据的一致性问题。请用200字以内的文字简要说明2PC;说明2PC是否能解决该问题,并简要解释原因。
【问题2】(8分)
王工建议采用分布式数据管理方案,用事件驱动架构来解决服务数据的一致性问题,在订单服务和支付服务之间通过可靠的消息队列实现事件的传递,其基本操作步骤如下,请填写其中的空白处。
(1)订单服务接收订购请求,创建一个订单,该记录状态为(a),发布一个“创建订单”事件;
(2)(b)接收“创建订单”事件,记录(c),发布一个“支付完成事件;
(3)订单服务接收“支付完成”事件,修改订单记录状态为(d)。
【问题3】(10分)
李工提出王工的方案会有数据库更新和发布事件的原子性问题,例如订单服务创建订单记录和发布“创建订单”事件需要原子性保障,否则会出现数据不一致状态。
王工认为可以使用本地事务发布事件的方法来解决该问题。请给出使用本地事务发布事件的基本方法,并说明该方法的缺点。
>>>>>>点击进入软考报名专题
相关推荐:2022年系统分析师下午案例分析真题及答案解析