討論火車票訂購網(wǎng)站架構(gòu)
提交訂票訂單的處理流程如下:
1)用戶通過瀏覽器訪問系統(tǒng)URL
2)界面集群F5將請求轉(zhuǎn)發(fā)至某一節(jié)點,通過比較用戶數(shù)據(jù)庫的內(nèi)容進行身份鑒權。
3)鑒權成功后進入訂票,提交訂票訂單(查詢流程暫不討論)界面顯示請等待
4)訂票消息被發(fā)送至總線部件(接口可用web Service、RMI、甚至自定義協(xié)議都可以)
5)總線收到訂票消息、去Cache集群查詢相關車次
6)Cache根據(jù)自身維護的車次余票表,返回查詢結(jié)果,如果有余票,轉(zhuǎn)7)。如果無票了,則總線返回界面集群“沒票了”,界面提示用戶明天再試。
7)若有余票,則總線返回界面集群“正在出票,請等待”,并將訂票請求壓入隊列。且發(fā)消息至Cache,告訴CACHE將訂票請求加入隊列。
8)Cache收到總線隊列增加1個的消息,將自身維護的對應車次余票數(shù)減1個。
9)總線另一線程負責從隊列中取消息,并發(fā)送至出票部件。
10)出票部件產(chǎn)生訂票結(jié)果,并修改數(shù)據(jù)庫,發(fā)送“訂票成功”消息回總線。
11)總線將訂票成功消息直接回傳至界面集群。
12)用戶看到訂票結(jié)果。
1)用戶通過瀏覽器訪問系統(tǒng)URL
2)界面集群F5將請求轉(zhuǎn)發(fā)至某一節(jié)點,通過比較用戶數(shù)據(jù)庫的內(nèi)容進行身份鑒權。
3)鑒權成功后進入訂票,提交訂票訂單(查詢流程暫不討論)界面顯示請等待
4)訂票消息被發(fā)送至總線部件(接口可用web Service、RMI、甚至自定義協(xié)議都可以)
5)總線收到訂票消息、去Cache集群查詢相關車次
6)Cache根據(jù)自身維護的車次余票表,返回查詢結(jié)果,如果有余票,轉(zhuǎn)7)。如果無票了,則總線返回界面集群“沒票了”,界面提示用戶明天再試。
7)若有余票,則總線返回界面集群“正在出票,請等待”,并將訂票請求壓入隊列。且發(fā)消息至Cache,告訴CACHE將訂票請求加入隊列。
8)Cache收到總線隊列增加1個的消息,將自身維護的對應車次余票數(shù)減1個。
9)總線另一線程負責從隊列中取消息,并發(fā)送至出票部件。
10)出票部件產(chǎn)生訂票結(jié)果,并修改數(shù)據(jù)庫,發(fā)送“訂票成功”消息回總線。
11)總線將訂票成功消息直接回傳至界面集群。
12)用戶看到訂票結(jié)果。

posted on 2012-01-06 11:10 paulwong 閱讀(362) 評論(0) 編輯 收藏 所屬分類: 分布式