關於Ebay的架構之一Asynchrony Everywhere

jhr820520發表於2013-08-30
各位jdon的老大,小弟新手一名,最近在學習一些架構方面的知識,在看到一篇關於Ebay技術架構的文章,其中關於Asynchrony Everywhere這一點,至於說優點是提高了系統的可用性和伸縮性,我能明白,但是關於如何實現的?我苦苦思索了幾天以及查相關的資料,都未能找到答案,所以想請教下jdon的各位高手。

舉例:
比如我公司目前為運營商做的終端商城專案,其中使用者下單的流程:

使用者下單請求 <-> 前端控制層 <-> 業務邏輯層 <-> 同步呼叫 <-> 訂單介面服務 <-> 資料層

以上即為目前使用者下單的處理流程,業務邏輯層使用同步的方式呼叫介面服務,直到訂單介面服務響應或者超時。
檢視了很多資料說加入訊息佇列的機制,即可實現非同步。首先將使用者的下單請求新增訊息佇列中,然後介面服務從訊息佇列中獲取請求訊息進行處理。我不明白的是:
1、前端系統在將請求新增到佇列後,是一直在等待響應,還是返回處理結果,如果是等待,那和同步的本質上沒區別,如果是返回結果,那下單是否成功也不得而知。
2、介面服務如何將處理結果返回給前端系統,還是將響應訊息放入訊息佇列中實現嗎?還有就是非同步的緣故,如何將響應與請求對應起來?

由於小弟不擅長於文件描述,有點小亂,請各位將就下,謝謝!!!












相關文章