各位jdon的老大,小弟新手一名,最近在学习一些架构方面的知识,在看到一篇关于Ebay技术架构的文章,其中关于Asynchrony Everywhere这一点,至于说优点是提高了系统的可用性和伸缩性,我能明白,但是关于如何实现的?我苦苦思索了几天以及查相关的资料,都未能找到答案,所以想请教下jdon的各位高手。
举例:
比如我公司目前为运营商做的终端商城项目,其中用户下单的流程:
用户下单请求 <-> 前端控制层 <-> 业务逻辑层 <-> 同步调用 <-> 订单接口服务 <-> 数据层
以上即为目前用户下单的处理流程,业务逻辑层使用同步的方式调用接口服务,直到订单接口服务响应或者超时。
查看了很多资料说加入消息队列的机制,即可实现异步。首先将用户的下单请求添加消息队列中,然后接口服务从消息队列中获取请求消息进行处理。我不明白的是:
1、前端系统在将请求添加到队列后,是一直在等待响应,还是返回处理结果,如果是等待,那和同步的本质上没区别,如果是返回结果,那下单是否成功也不得而知。
2、接口服务如何将处理结果返回给前端系统,还是将响应消息放入消息队列中实现吗?还有就是异步的缘故,如何将响应与请求对应起来?
由于小弟不擅长于文档描述,有点小乱,请各位将就下,谢谢!!!