關於”12306 外包給阿里巴巴做是否可行“的問題的想法
今天快下班的時候,在知呼網看到“12306 外包給阿里巴巴做是否可行“的問題,下班在公司班車上想到把12306網站最常用的用例(客戶查詢餘票資訊),拆分成3個系統來完成,各系統可以叢集部署的方法。
我們一起分析下購買火車票的場景,個人來講我比較喜歡12306,因為火車相對來講是一個方便、快速、安全的交通工具。我平常臺登入12306,一般購買“杭州”到“蒼南”,如下圖的查詢頁面
發現1月27號早上還有些剩餘的票,主要是蒼南的火車有20輛。客戶查詢火車票這個用例,查詢條件包括出發地和目的地,結果包括車次、出發站、到達站、餘票(當然還包括其它資訊,但是這些資訊對場景分析沒有任何作用的)。我們可以把出發地、目的地作為唯一鍵,儲存查詢結果。我們再看看查詢結果有什麼特點,不同的車次有相同的出發地和目的地,唯一有變化的只有餘票的數量。特定的出發地和目的地的客戶查詢火車票用例,可以說是沒有任何變化的,我們對沒有變化的資料定義為火車票查詢模型,查詢模型只有在新增車次、刪除車次、修改車次時,它才會發生變化。我們可以正對查詢模型可以做一個查詢系統,我們可以根據不同出發地和目的地組合,來分配伺服器部署系統,甚至可以相同的出發地和目的地叢集部署。
我的想法是把客戶查詢火車票這個用例,讓3個系統來完成(主站,查詢系統,餘票系統)。餘票模型是主鍵是車次、出發站、到達站,車次決定出發站和到達站的組合。餘票系統可以根據不同車次,來分配伺服器部署系統,甚至可以一個車次做叢集部署。
客戶查詢餘票用例流程1,客戶登入主站->開啟查詢頁面->輸入出發地和目的地->點選查詢按鈕->主站根據出發地和目的地向查詢系統請求查詢結果->主站根據查詢結果裡的車次、出發站、到達站向餘票系統請求餘票資訊->最後主站把客戶查詢結果返回給瀏覽器。
客戶查詢餘票用例流程2,客戶登入主站->開啟查詢頁面->輸入出發地和目的地
轉載於:https://my.oschina.net/dukous/blog/191463