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