刚刚接到阿里的一个电话面试,提到这个问题,一时间没回答上来。
这里对此问题作下分析:
首先这应该是一个发散性问题,考察面试者的问题分析能力和处理能力。
前提条件:
1:淘宝平台,与支付宝平台必然是解耦的。也就是说在淘宝创建订单过程中不可能是同步调用支付宝创建订单接口(同步调步使用两系统耦合太紧,时延太长,支付宝创建出错还将导致淘宝订购失败,这无法接受)。
2:虽然是异步调用,但实时性要求很高。(因为大量用户在淘宝订购之后会立即支付)
我的思路:
1:淘宝创建订单时,异步调用支付宝的创建订单接口。(或者使用消息中间件,如kafka)。支付宝收到订购消息,则创建订单(这期间会有一定的延迟)。
2:用户选择支付宝支付时,同步调用支付宝创建订单(应为订单有效性检查,这时就必须要求支付宝订单创建成功了,但此时并不会系统造成很大压力,因为已经有大部分订单已创建成功。这里支付宝只须判断,如果订单未创建成功,则创建订单。)。
这里有一个难题:如何保证支付宝异步创建订单的及时性(用户在淘宝下订,到支付宝订单创建成功的时间),我觉得这个延时最多不能超过2秒钟(此时间是考虑用户在淘宝的操作流程和操作时间间隔)。这里考虑kafka主要是因为其它牛B的性能和消息不易失(消费完还能找回,保存时间长)。
就这样。
================================================
补充:考虑到淘宝有货物库存的问题,如秒杀系统,必须严格要求先到的请求优先创建订单,后到请求如果库存不够,则不能创建订单。
由于不可能为秒杀系统单独建立一套订单流程。所以要求:必须保证订单的顺序一致性。
这一点kafka无法满足要求,刚查到的资料:淘宝开源的消息中间件:Metamorphosis (MetaQ) 则可以保证顺序性。
完!
相关推荐
未完工程及遗留问题清单(表格模板、XLS格式).XLS
关于数据地图的几个遗留问题解决方案.docx
工程遗留问题处理程序文件.doc
M19 工程遗留问题统计表 华为工程遗留问题统计表
c++第一次遗留问题解决(陆璐).docx
房屋接管验收遗留问题统计表.doc
15 房屋整改遗留问题审批表.doc
房屋接管验收遗留问题统计表(表格模板、DOC格式).DOC
房屋接管验收遗留问题统计表(DOC格式).doc
解决历史遗留信访问题的实践与思考.doc
房地产开发项目历史遗留问题专项整治总体工作方案.pdf
遗留系统重构与维护,火龙果软件课程讲义,着重介绍软件维护思想
不动产登记历史遗留问题典型案例分析.pdf
NULL 博文链接:https://rendegen.iteye.com/blog/1009034
奇艺启动新域名背后:解决视听许可证遗留问题.docx
此扩展的用例是当您不想经历将大量订单从另一个 Magento 商店或旧电子商务平台导入 Magento 订单表的麻烦时,但您仍然希望客户能够看到这个数据在一个平面表中。 请随时提交 PR 并对此进行改进。 安装这个扩展 ...
数智化城建设项目遗留问题解决办法讨论会工作方案模板 一、会议背景和目标 背景:随着数智化城市的快速发展,一些早期项目在实施过程中可能遇到各种遗留问题,这些问题可能影响项目的持续推进和城市的整体发展。 ...
三个不同场景下的遗留物视频,一个室内视频,(不同种类颜色物品的遗留物测试视频),一个半露天视频,一个火车站的遗留物检测视频。是专门用于遗留物检测用的视频
软件项目遗留项处理计划是指在软件项目完成后,识别和管理尚未解决的问题、缺陷、需求或任务,以便安排它们的解决和管理。以下是软件项目遗留项处理计划的主要目的和内容: 1. **管理未解决问题:** 处理计划的主要...
有效解决拆迁安置遗留问题思考