刚刚接到阿里的一个电话面试,提到这个问题,一时间没回答上来。
这里对此问题作下分析:
首先这应该是一个发散性问题,考察面试者的问题分析能力和处理能力。
前提条件:
1:淘宝平台,与支付宝平台必然是解耦的。也就是说在淘宝创建订单过程中不可能是同步调用支付宝创建订单接口(同步调步使用两系统耦合太紧,时延太长,支付宝创建出错还将导致淘宝订购失败,这无法接受)。
2:虽然是异步调用,但实时性要求很高。(因为大量用户在淘宝订购之后会立即支付)
我的思路:
1:淘宝创建订单时,异步调用支付宝的创建订单接口。(或者使用消息中间件,如kafka)。支付宝收到订购消息,则创建订单(这期间会有一定的延迟)。
2:用户选择支付宝支付时,同步调用支付宝创建订单(应为订单有效性检查,这时就必须要求支付宝订单创建成功了,但此时并不会系统造成很大压力,因为已经有大部分订单已创建成功。这里支付宝只须判断,如果订单未创建成功,则创建订单。)。
这里有一个难题:如何保证支付宝异步创建订单的及时性(用户在淘宝下订,到支付宝订单创建成功的时间),我觉得这个延时最多不能超过2秒钟(此时间是考虑用户在淘宝的操作流程和操作时间间隔)。这里考虑kafka主要是因为其它牛B的性能和消息不易失(消费完还能找回,保存时间长)。
就这样。
================================================
补充:考虑到淘宝有货物库存的问题,如秒杀系统,必须严格要求先到的请求优先创建订单,后到请求如果库存不够,则不能创建订单。
由于不可能为秒杀系统单独建立一套订单流程。所以要求:必须保证订单的顺序一致性。
这一点kafka无法满足要求,刚查到的资料:淘宝开源的消息中间件:Metamorphosis (MetaQ) 则可以保证顺序性。
完!
相关推荐
房屋接管验收遗留问题统计表知识点 房屋接管验收遗留问题统计表是房...房屋接管验收遗留问题统计表是一个非常重要的工具,能够帮助记录和统计房屋接管验收过程中的问题,确保问题得到及时解决,避免问题的扩大和影响。
《工程遗留问题处理程序文件》是物业管理中一个重要的文档,主要目标是确保开发商、承包商与物业管理服务公司之间的工作协调,及时有效地解决工程完工后存在的问题,以规范工程维修流程,保证业主权益不受损害。...
未完工程及遗留问题清单(表格模板、XLS格式).XLS
《M19工程遗留问题统计表》是华为技术有限公司针对特定工程M19进行的问题整理与分析工具。这个表格主要用于记录在工程项目执行过程中未解决或待处理的问题,以便后续跟踪和改进,确保工程质量与进度。 在工程管理中...
【遗留问题.txt】:这个文件名暗示了内容可能包含了具体的问题列表或者是在解决遗留问题过程中的一些笔记。文件可能涵盖了常见的错误、性能瓶颈、设计缺陷等,并提供了相应的解决方案或改进建议。 在Java开发中,...
"房屋接管验收遗留问题统计表" 是一个用于记录在验收过程中发现的问题和缺陷的工具,以便于后续的整改和跟踪。以下是对这一主题的详细解释: 1. **接管验收流程**:接管验收通常包括以下几个步骤:预验收(初步检查...
3. **统计表**:这是一种组织和管理遗留问题的工具,包含多个字段,如“遗留项目名称”、“统计人”和“日期”,这些字段有助于追踪问题的来源、责任人以及发现问题的时间,有利于提高问题解决的效率。 4. **遗留...
本文主要讨论了三个关于数据地图的遗留问题,并提供了相应的解决方案。这些问题包括: 1. **呈现不同行政级别的地理信息**:这是一个常见的挑战,特别是在处理全球或国家层面的数据时。解决方案是通过叠加不同级别...
遗留系统的重构与维护是软件工程领域中一项至关重要的工作,它关注的是那些历史悠久、结构复杂且可能缺乏文档记录的旧有软件系统。重构是为了提高软件系统的可维护性、可扩展性、可读性和性能,而维护则涉及对系统的...
答:抽象类与接口都用于抽象,但是抽象类可以有自己的部分实现,而接口则完全是一个标识(同时有多重继承的功能)。 8. Java 的通信编程 答:Java 的通信编程可以使用 Socket 编程来实现。Socket 是一种网络通信的...
在房地产行业中,房屋整改遗留问题审批表是物业管理与客户服务部门重要的工作流程之一,它涉及到房屋交付前的质量控制和客户满意度的提升。这份审批表的主要目的是确保所有房屋在交付给业主之前已经按照规定进行了...
在IBM的Java英文面试中,面试官可能会提出各种问题来测试候选人的技术能力和项目经验。以下是一些面试题目的详细解答: 1. **Oracle**:Oracle是一家全球知名的数据库管理系统提供商,其产品包括Oracle数据库,广泛...
第五,加强与相关单位的合作,共同解决不动产登记历史遗留问题。 不动产登记历史遗留问题的解决需要多方面的合作和努力,政府、企业、业主和相关单位都需要共同努力,建立完善的不动产登记制度,确保土地权属清晰、...
- **责任不清**:多个施工单位参与同一遗留问题处理时,责任界定模糊,难以形成一致意见与解决方案。 - **技术限制**:对于复杂的技术问题,管理处可能不具备判断施工方修理程序与方法是否得当的能力,导致修理质量...
在开发基于JSP的Web应用时,经常遇到一些常见的问题,如数据重复提交、页面刷新导致的重复操作以及异步操作同步问题。以下是对这些问题的详细解决方案: **问题1:防止数据重复提交** 数据重复提交通常发生在用户...
### .Net程序员面试真题解析 #### UDP和TCP连接有何异同? - **TCP (Transmission Control Protocol)**: 是一种面向连接的、可靠的、基于字节流的传输层通信协议。在传输数据之前,TCP会先建立连接,确保数据能够...
这个压缩包提供的资源对于开发者来说是一份宝贵的参考资料,尤其是对于那些需要处理遗留系统的支付接口问题,或者对支付宝早期接口进行研究的人来说。通过深入学习和实践,可以更好地理解和掌握支付宝支付流程,提高...