今天快下班的時候,在 知呼 網看到「12306 外包給阿里巴巴作是否可行「的問題,下班在公司班車上想到把12306網站最經常使用的用例(客戶查詢餘票信息),拆分紅3個系統來完成,各系統能夠集羣部署的方法。瀏覽器
咱們一塊兒分析下購買火車票的場景,我的來說我比較喜歡12306,由於火車相對來說是一個方便、快速、安全的交通工具。我日常臺登陸12306,通常購買「杭州」到「蒼南」,以下圖的查詢頁面安全
發現1月27號早上還有些剩餘的票,主要是蒼南的火車有20輛。客戶查詢火車票這個用例,查詢條件包括出發地和目的地,結果包括車次、出發站、到達站、餘票(固然還包括其它信息,可是這些信息對場景分析沒有任何做用的)。咱們能夠把出發地、目的地做爲惟一鍵,保存查詢結果。咱們再看看查詢結果有什麼特色,不一樣的車次有相同的出發地和目的地,惟一有變化的只有餘票的數量。特定的出發地和目的地的客戶查詢火車票用例,能夠說是沒有任何變化的,咱們對沒有變化的數據定義爲火車票查詢模型,查詢模型只有在新增車次、刪除車次、修改車次時,它纔會發生變化。咱們能夠正對查詢模型能夠作一個查詢系統,咱們能夠根據不一樣出發地和目的地組合,來分配服務器部署系統,甚至能夠相同的出發地和目的地集羣部署。服務器
個人想法是把客戶查詢火車票這個用例,讓3個系統來完成(主站,查詢系統,餘票系統)。餘票模型是主鍵是車次、出發站、到達站,車次決定出發站和到達站的組合。餘票系統能夠根據不一樣車次,來分配服務器部署系統,甚至能夠一個車次作集羣部署。工具
客戶查詢餘票用例流程1,客戶登陸主站->打開查詢頁面->輸入出發地和目的地->點擊查詢按鈕->主站根據出發地和目的地向查詢系統請求查詢結果->主站根據查詢結果裏的車次、出發站、到達站向餘票系統請求餘票信息->最後主站把客戶查詢結果返回給瀏覽器。網站
客戶查詢餘票用例流程2,客戶登陸主站->打開查詢頁面->輸入出發地和目的地->點擊查詢按鈕->主站根據出發地和目的地向查詢系統請求查詢結果->主站把客戶查詢結果返回給瀏覽器->流浪器根據查詢結果裏的車次、出發站、到達站向餘票系統請求餘票信息->餘票系統把餘票信息返回給瀏覽器。spa