刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

试题四(共25分)

阅读以下关于微服务架构中的数据管理的叙述,在答题纸上回答问题1至问题3。

【说明】

某大型电商平台构建了一个在线B2B商店系统。该系统采用微服务架构,将系统功能分解为多个松散耦合且可独立部署的较小组件或服务。最终设计的系统包括了电商系统中常见的服务:客户服务、订单服务、支付服务等,其中:

1、 客户服务负责对客户相关的信息进行管理和维护;

2、 订单服务负责对订单信息的管理和维护;

3、支付服务负责对在线支付功能和信息的管理和维护等。

为了确保微服务之间的松耦合,每个服务都有自己的数据,其中,订单服务使用了 NoSQL 数据库,客户服务和支付服务使用了关系数据库。

李工认为由于不同服务使用了各自的不同数据库,使得跨服务操作可能存在数据不一致。比如订单与支付的数据一致性问题,系统通过订单服务在本地 NoSQL 数据库中创建订单记录,同时在支付服务的关系数据库中创建支付记录,且必须保证订单记录和支付记录的一致性,该问题在系统构建时需要考虑。

【问题2】(8分)

王工建议采用分布式数据管理方案,用事件驱动架构来解决服务数据的一致性问题,在订单服务和支付服务之间通过可靠的消息队列实现事件的传递,其基本操作步骤如下,请填写其中的空白处。

(1)订单服务接收订购请求,创建一个订单,该记录状态为(a),发布一个“创建订单”事件;

(2)(b)接收“创建订单”事件,记录(c),发布一个“支付完成事件;

(3)订单服务接收“支付完成”事件,修改订单记录状态为(d)。

使用微信搜索喵呜刷题,轻松应对考试!

答案:

a新建,b支付服务,c支付,d支付完成


解析:

在这个分布式数据管理方案中,事件驱动架构被用来解决服务数据的一致性问题。具体操作步骤如下:

(1)订单服务接收订购请求,创建一个新的订单,该订单处于新建状态,然后发布一个"创建订单"事件。

(2)支付服务接收"创建订单"事件,记录支付信息,然后发布一个"支付完成事件"。这里的记录支付信息是为了确保支付过程被正确跟踪和记录,以便于后续的审计和查询。

(3)订单服务接收"支付完成"事件,修改订单记录状态为支付完成状态。这表明订单已经成功支付,可以进一步处理订单的后续流程,如发货等。

通过这种分布式数据管理和事件驱动的方式,可以确保订单服务和支付服务之间的数据一致性,同时保持服务的松耦合性。

创作类型:
原创

本文链接:【问题2】(8分)王工建议采用分布式数据管理方案,用事件驱动架构来解决服务数据的一致性问题,在订单服

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share