精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

鐵道部新客票系統設計(二)

開發 架構
正題開始,原來打算這一篇里面介紹數據庫表的設計,但是上一篇文章中還有很多細節問題,沒有解決,這里面繼續上一張,把數據這一層在慢慢完善。

 在上一篇文章中 鐵道部信客票系統設計(一) 里面,探討了關于數據庫層面的功能性需求以及非功能性的需求,在非功能性需求里面,一博主 提出了沒有考慮到峰值的情況,這一點的確漏掉了,因為我們鐵道部的特殊需求,在春運期間負載很大,平時可能一般,如果用考慮***的情況,則回存在浪費的情況,如果考慮不足,就像網絡訂票一樣,苦逼。就好比 鐵道部春運的時候,發車量大,但是如果制造大量列車,平時就空閑了,也就很虧。機器的折舊很是塊的。春運期間可以考慮緊急擴容來實現,所以從設計上可以保持這種擴展性。 擴容是一項工程,整體來說比較復雜。

上一篇博客發表后,也有博主和我探討過一些問題,也讓我了解到鐵道部目前的狀態。由于這個純粹是技術上的分析,先不去考慮一些政治因素,畢竟這個比技術復雜多了

正題開始,原來打算這一篇里面介紹數據庫表的設計,但是上一篇文章中還有很多細節問題,沒有解決,這里面繼續上一張,把數據這一層在慢慢完善

購票的業務流程

由于購票過程中是鐵道部售票系統的主要功能也是核心業務邏輯,這里先從購票的業務流程開始,討論購票業務流程中相關的數據庫設計

簡單的購票流程

終端-->查詢余票-->選擇車次-->確認座位-->選擇張數-->支付-->出票

這里面重要的是兩個環節 查詢余票 和 支付過程

我們先模擬以下正常網絡購票過程中數據庫的操作,這里面先把問題簡單化,假設用戶只買始發站到終點站的數據

 

  1. select * from 余票 
  2. insert into 車票 
  3. update 余票 -1 
  4. update 車票 set status='WAIT_PAY' where id = xxx 
  5. update 車票 set status='PAY' where id = xxx 

電話訂票類似,只不過訂的票不會由于過期而取消,要么支付,要么退票

而在窗口、代售點買的票,支付方式只不過是現金,出票的時候自動支付。

其實無論從那個終端過來的請求,都會涉及到查詢余票,創建車票,支付車票 過程,考慮一中簡單的情況,就是用戶只查詢一次,就選擇了自己要確定的車次,然后購票,去支付。那么一次購票請求,會至少 一次余票查詢  一次余票更新,一次車票insert,兩次車票update,這個還是最少的情況,實際鐵道部的業務應該比這個復雜多了。由于查詢余票是購票請求的入口,所有的購票請求都會優先查詢余票庫

余票庫的設計

在***篇文章中,余票庫沒有設計成為讀寫分離,主要是考慮的用戶一定獲取的是最實時信息,讀寫分離的話,讀庫和寫庫的數據有效性上面會有差異,比如我更新了一個數據,必須馬上反映到余票上,否則用戶看到一個過期的數據,對用戶體驗很不好。這個庫的訪問量超級大,而且還會涉及到熱點數據的鎖定,一旦同一條數據(比如我這次想買Z27硬臥)同時被大量用戶請求,根據上面分析的,出票就要鎖定余票表中Z27這一條記錄,由于一次只允許一條用戶請求能夠獲得鎖,請求要必須盡快的處理,除了必要的原子操作,比如票數-1,產生購票表,其他的耗時操作就應該越少越好,盡量異步化操作,核心思想就是盡快的釋放鎖,否則請求排隊的線程越來越多,導致數據庫所有數據庫的連接資源被耗盡,系統會變的很慢。

整理以下:在設計余票庫的時候,在性能上提升,可以從下面幾個方面去考慮

1 盡量減少沒有必要的查詢,減少數據庫的資源消耗

2 鎖的粒度越小越好

3 訂票事務處理越短越好,消耗的業務邏輯處理越快越好,爭取***的異步處理。

接下來就是考慮如何通過上述思想,找出具體的設計方案

1 減少對數據庫的查詢

一般情況下,先會查詢某日余票信息,接下來就是根據查詢出來的信息,選擇車次,席位。然后張數,然后訂票成功。

首先,假設我們把余票信息緩存,應用先查詢緩存,如果有票,用戶選擇車次和席位,這樣會減少一次數據庫的查詢。

緩存有兩種方式,一種是應用局部緩存,每個渠道緩存票務數據,這里涉及到數據的更新以及各個緩存之間的同步,不及時,暫時不考慮。

另外一個種是分布式緩存,建立緩存服務器(這里面說的緩存都是指內存緩存),數據庫只需要和緩存服務器之間保持同步,但是這樣一來,如果會員想獲取***的數據,緩存服務器也需要保持很頻繁的更新,相當于要保持緩存和余票數據的同步。這個成本也是非常高。還有一個折中方案,就是緩存不緩存票數,而是緩存有票無票信息,每次用戶查詢票數的時候,先查緩存信息,看看是否有票,如果有票,就查詢數據查詢具體的票數,如果無票,就不需要進行查詢了,這樣減少了數據庫的查詢。同時緩存的更新也少了很多,只需要在票數等于0的時候,更新以下緩存數據。假設票在一分鐘之內賣掉,相當于只需要承受一分鐘的查詢請求。

當緩存替代數據庫作為主要查詢請求處理者的時候,緩存成為整個系統的瓶頸。

2 減少鎖的粒度

當旅客選擇一張票的時候,我需要鎖定一條記錄,避免同時更新,造成重復出票(這里說以下,我記得大學的時候,我從武漢買回家的票,鐵道部一個座位賣出三張票,而且是大面積情況,相當于一個車廂人數比平時多了三倍,當初我以為是假票,現在看來,可能是重復出票了)。還是拿Z27距離,假設我要買20120931日期票,我必須要選擇一個座位,那么設計的時候,就可以 按照日期,車次,席位類型 三者確定一條記錄,然后鎖定它。而不是值根據車次 + 日期,這樣在你買坐票的時候,買臥鋪的旅客就不會受到影響。(PS:實際鐵道部售票會遠遠這個模型簡單,因為涉及到始發站,??空?,終點到,假設一個車次停靠 S1->S2-S3,那么旅客買S1->S2 和 旅客買S2->S3 就不會收到影響,我們先簡化模型,這里只是先提出設計的思想)

3 減少訂票處理事務時間

在整個訂票業務流程中,發郵件,發短信,計算各個站點的余票信息等比較等耗時業務操作,完全異步化處理。只需要找出關鍵的流程,如果需要保持一個事務,那么通過異步確保的方式進行。這個是技術層面的東西,后面在介紹。

存在的問題

通過分析,我們給出了一個最簡單的訂票數據庫這一層的解決方案,再仔細分析其中存在的問題

1 余票查詢的維度并不是 車次 +  日期 + 席位類型,應該還有始發站-->終點站因素,必須有一個非??斓乃惴ǎ袛嗍欠裼衅?,然后告知應用。

2 緩存是系統中的單點,一旦緩存故障,數據庫估計承受不了

3 數據庫上次我說的只需要分成一個庫(因為上一章節建立數據庫備份機制,故這里面不存在單點),這里面可能存在性能,這里需要進行壓力測試,模擬測試??纯慈萘可暇€。為了繼續進行設計,我們假設即使在緩存存在的情況,數據庫沒有辦法處理當前的數據,主要是為了應付春運。

這里先解決余票庫分庫的問題,分庫考慮的原則在上一篇文章分析過,但是由于這個庫的數據量不大,只是訪問會比較頻繁,我們竟可能減少用戶的訪問為主要考慮因素,鐵路購票有其特殊的因素,比如春節的時候從上海買去成都的票非常緊張,查詢量也是***,但是相反,這段期間買成都去上海的票的人就會比較少,查詢量比較少。而春節過后上班也就相反。這個思路也就是說按照站站來分,也可以按照鐵路局賣的票來分。我們的思路就是盡量各個庫的訪問量均勻。不過也存在一個問題,就是分庫的擴展性比較差,一旦擴容,就要做改動。

在談緩存的問題,一臺緩存服務器不夠,可以部署緩存集群。至于是不是一臺緩存服務器存放所有的數據,還是要看數據的多少,盡可能的所有數據都緩存在一臺服務器上面。緩存的數據維度為 預售期、車次 、席位、始發站、終點站 、是否有票 ,按照道理,應該可以緩存所有的數據,不過這個也要看緩存的實現支持***的內存數量。比如java實現的緩存 在32位機器上面 只能支持差不多2G的緩存空間。這里面假設一臺緩存服務器能夠實現所有預售期車票數據的緩存,那么這里面只需要的就是在余票數據更新的時候更新所有集群的緩存數據。

而余票的計算則是里面最為復雜的了,因為新增了兩個維度,就是始發站->到達站。這個問題比較復雜,先暫時放到下一篇文章區分析。

繼續分析,發現上面的分析中,貌似還少了一個比較重要的因素,那就是渠道因素,我們知道,訂票有窗口渠道,代理售票口,網站,電話等等。假如每個渠道售出的票都是公平的,那么肯定不合乎道理的,那互聯網可能就是比較占優勢的(如果系統設計的足夠好的話),對于辛苦排隊的人來說,相當不公平。這里面有兩種解決方案

1 可以設計為每個渠道進行配額,比如網絡訂票 ,我給總票數的多少,每個代理點,我給的票數是多少等等。如果把這些因素在加入到余票信息中,會變的非常復雜,也不好擴展,畢竟這個是屬于經常變化的。設計的一個原則分離不變和易變。如果不變的和易變柔和在一起,系統的擴展性就回很弱。

2 可以按照請求排隊,按照渠道優先級進行分配,這樣在大多數請求排隊的情況下,有一些請求就回被餓死,也就是部分渠道根本買不到票,因為請求會被餓死。

如果要我選擇兩種方案的,我會選擇***種,因為可以在不同時刻進行放票,這樣可以分散請求。來自互聯網10點放票,窗口的8點放票,代理點9點。自然把流量就分開了。渠道配額管理這一塊我覺得將會是最復雜的一個系統,涉及到利益太多。余票庫這里面我想設計的簡單一點,不想把復雜的渠道,配額管理引入進來,盡量放在外圍系統中控制。

今天先寫到這里,發現在這上面思考的比較多了,后面再持續分析吧。還要繼續開發我的ios app,寫文章有點超時了。

原文鏈接:http://www.cnblogs.com/aigongsi/archive/2012/09/18/2689868.html

 

【編輯推薦】

  1. ASP.NET Web開發框架項目介紹
  2. YQBlog .NET MVC3博客系統之用戶系統實戰
  3. ASP.NET Cache的一些總結
  4. ASP.NET中常用的幾種身份驗證方式
  5. 各自為政:ASP.NET實現團隊分工的思考

 

責任編輯:彭凡 來源: 博客園
相關推薦

2012-09-21 09:13:52

鐵道部

2012-09-19 09:23:18

鐵道部

2010-01-19 21:13:50

鐵道建設負載均衡Radware

2011-01-21 17:08:39

火車票

2012-01-05 17:26:58

2012-01-06 10:10:14

2014-01-13 11:27:46

12306官網互聯網思維鐵道部

2012-02-09 20:29:13

美信云網管

2012-09-23 09:38:13

鐵路客票系統

2013-01-18 09:43:48

2012-01-11 10:11:08

2012-01-06 10:16:14

訂票網站11大電商網站

2013-01-24 21:14:42

搶票軟件網站安全360安全中心

2012-01-10 10:23:20

鐵路網絡接口

2009-01-18 09:39:03

2011-01-25 09:24:00

2018-02-07 17:12:00

2013-01-21 16:02:29

Chrome搶票

2013-01-28 14:16:59

2013-07-03 17:07:39

產品產品經理產品設計
點贊
收藏

51CTO技術棧公眾號

3d欧美精品动漫xxxx无尽| 精品国自产拍在线观看| 国产欧美日韩| 91精品国产品国语在线不卡| 日韩不卡视频一区二区| 五月天激情开心网| 久久99久久久欧美国产| 68精品久久久久久欧美| 欧美性生交大片| 国产色噜噜噜91在线精品| 欧美视频一区在线观看| 丁香婷婷综合激情| 午夜在线免费观看视频| 北条麻妃国产九九精品视频| 国产精品美女在线| 日韩精品在线免费看| 99热在线成人| 亚洲欧美综合v| 国产sm在线观看| 日韩欧美2区| 午夜精品久久一牛影视| 四虎影院一区二区| 国产在线你懂得| 不卡免费追剧大全电视剧网站| 一本大道久久加勒比香蕉| 免费看91视频| 亚洲伦理网站| 欧美主播一区二区三区美女| 欧美一区二区中文字幕| 四虎影视成人| 专区另类欧美日韩| 色就是色欧美| 可以在线观看的黄色| 国产成人精品网址| 91精品综合视频| 瑟瑟视频在线免费观看| 噜噜噜91成人网| 久久久免费观看| 欧美精品xxxxx| 欧美~级网站不卡| 中文字幕亚洲图片| 先锋影音av在线| 国产一区二区观看| 亚洲欧美日韩天堂一区二区| 无码国产69精品久久久久网站| 国产美女高潮在线观看| 亚洲色图另类专区| 先锋影音日韩| 成人性生交大片免费看午夜| 久久嫩草精品久久久久| 久中文字幕一区| 日日夜夜精品免费| 97精品视频在线观看自产线路二| 国产精品嫩草影院久久久| 国产成人无码av| 久久激情视频| 国产精品美女视频网站| 亚洲av综合一区| 久久国产剧场电影| 91久久国产精品| 国产三区在线播放| 国产精品小仙女| 国产91社区| 天天干天天舔天天射| 99re这里都是精品| 欧美国产视频在线观看| av在线免费观看网站| 国产精品福利电影一区二区三区四区| 91在线观看免费观看| 国产美女三级无套内谢| 国产精品一二三四| 韩国成人一区| 免费在线高清av| 中文字幕精品一区二区精品绿巨人| 成人在线观看91| 少妇无码一区二区三区| 91视频国产资源| 亚洲国产精品久久久久婷婷老年| 蜜臀久久99精品久久久| 91丨porny丨蝌蚪视频| 久久99精品久久久久久秒播放器| 国产三级三级在线观看| 成人免费高清在线| 蜜桃网站成人| 男人的天堂在线视频免费观看| 97精品久久久久中文字幕| 噜噜噜噜噜久久久久久91| 超碰免费在线观看| 一区二区三区资源| 日本黄网站免费| 国产精品国产三级在线观看| 精品日韩成人av| 久久久久久久久久久久久久久| 欧美日韩一区二区三区四区不卡 | 久久综合免费视频影院| 青春草免费视频| 亚洲影视综合| 成人性教育视频在线观看| 免费激情视频网站| 中文字幕av一区二区三区高 | 国产精自产拍久久久久久蜜| 亚洲一级在线播放| 99在线精品观看| 一区二区精品国产| 欧美xxxhd| 9191精品国产综合久久久久久| 欧美成人福利在线观看| 荡女精品导航| 久久精品中文字幕| 中文字幕xxxx| 99热这里都是精品| 2022中文字幕| 成人福利片在线| 日韩av最新在线| 亚洲国产123| 丝袜诱惑制服诱惑色一区在线观看| 97碰碰碰免费色视频| 在线不卡免费视频| 99久久国产综合色|国产精品| 国产伦精品一区二区三区| 色视频在线免费观看| 色综合久久久久| 国产高清成人久久| 国产一区激情| 亚洲专区中文字幕| 午夜免费视频在线国产| 一本高清dvd不卡在线观看| 少妇献身老头系列| 91精品一区二区三区综合在线爱| 久久艹在线视频| а中文在线天堂| 久久一夜天堂av一区二区三区| 日产国产精品精品a∨| 黄色在线观看www| 欧美成人精品福利| 欧美高清视频一区二区三区| 青青草原综合久久大伊人精品优势| 国产日韩精品在线| 男男激情在线| 欧美性xxxx极品高清hd直播| 欧美在线一级片| 亚洲第一精品影视| 国产福利久久精品| 男男gaygays亚洲| 日韩视频一区在线观看| 色婷婷在线视频观看| 国产一区二区三区日韩| 中文字幕久久一区| japansex久久高清精品| 久热在线中文字幕色999舞| 97成人在线观看| 国产精品蜜臀在线观看| 色www免费视频| 91精品国产乱码久久久久久久| 午夜精品久久久久久99热软件| 亚洲欧美偷拍一区| 国产亚洲女人久久久久毛片| 久久久久国产精品熟女影院 | 99国内精品久久久久久久软件| 天堂网在线观看视频| 亚洲va欧美va国产va天堂影院| 男操女免费网站| 日韩一区二区中文| 亚洲sss综合天堂久久| 午夜小视频福利在线观看| 日韩欧美色综合| 日韩精品一卡二卡| 久久久精品免费观看| 亚洲激情在线观看视频| 婷婷丁香综合| 古典武侠综合av第一页| 筱崎爱全乳无删减在线观看| 亚洲视频网站在线观看| 亚洲一级片免费看| 亚洲国产视频一区二区| 风间由美一二三区av片| 奇米影视一区二区三区| 看一级黄色录像| 荡女精品导航| 国产精品久久久久久中文字| 污污网站在线观看| 亚洲高清免费观看高清完整版| 亚洲伦理一区二区三区| 国产91在线|亚洲| 激情五月开心婷婷| 手机亚洲手机国产手机日韩| 国产99在线免费| 欧美7777| 欧美精品亚州精品| 性xxxx视频| 欧美日韩在线三区| 国产精品suv一区二区| 国产午夜精品一区二区三区四区| 女性女同性aⅴ免费观女性恋 | 欧美不卡在线视频| 男人天堂2024| 亚洲一线二线三线视频| 一区二区精品免费| 国产精品综合在线视频| 日本wwww视频| 国产精品黄色| 一区二区三区|亚洲午夜| 精品按摩偷拍| 亚洲xxxxx| 日韩欧美精品一区二区综合视频| 亚洲日韩中文字幕| 亚洲精品字幕在线| 欧美日韩免费观看一区二区三区| 后入内射无码人妻一区| 99视频一区二区| 亚洲欧美天堂在线| 日韩黄色小视频| 亚洲人成无码网站久久99热国产| 国产精品对白| 国产主播在线一区| 桃花岛tv亚洲品质| 91黄色8090| 亚洲奶水xxxx哺乳期| 中文字幕欧美日韩在线| 五月婷中文字幕| 精品日韩欧美一区二区| 国产精品视频一二区| 欧美又粗又大又爽| 亚洲GV成人无码久久精品 | 欧美三级日本三级| 久久精品在这里| 老司机福利av| 91在线国产观看| 黄色性视频网站| 国产成人综合精品三级| 亚洲一区二区在线视频观看| 免费看欧美美女黄的网站| 免费看一级大黄情大片| 黄色在线一区| 国产av熟女一区二区三区 | 国产成人av电影在线播放| 亚欧激情乱码久久久久久久久| 欧美黄色一区二区| 亚洲AV无码成人精品一区| 欧美一站二站| 亚洲精品乱码久久久久久蜜桃91 | 亚洲 国产 欧美一区| 亚洲综合小说图片| 欧美日韩精品久久| 九一精品国产| 欧美日韩天天操| 九九精品久久| 亚洲精品一区二区毛豆| 日韩午夜电影网| 成人短视频在线看| 欧美一区二区三区另类 | 色综合天天天天做夜夜夜夜做| www.4hu95.com四虎| 欧美国产日韩精品免费观看| 九九热免费在线| 日本一区二区三级电影在线观看| 国产精品果冻传媒| 国产成人无遮挡在线视频| 欧美激情第四页| 国产成人av影院| 波多野结衣影院| 久久影音资源网| 亚洲色图27p| 亚洲三级电影网站| 男女免费视频网站| 色综合天天综合在线视频| 丰满熟女人妻一区二区三| 欧美二区乱c少妇| www.热久久| 亚洲国产欧美一区二区三区同亚洲 | 免费a在线观看| 一区二区三区高清国产| 97电影在线| 欧美日韩成人免费| 美女露胸视频在线观看| 国产精品久久久久久久久久ktv| 成人福利影视| 日韩av片免费在线观看| 国产精品第一| 国产一区在线免费| 欧美日韩国产高清电影| 国内精品国产三级国产99| 亚洲青涩在线| 手机在线成人免费视频| 粉嫩一区二区三区性色av| 美女久久久久久久久久| 亚洲精品国产a| 国产91精品一区| 欧美精品vⅰdeose4hd| 先锋av资源站| 久久精品一偷一偷国产| 伊人久久在线| y111111国产精品久久婷婷| 亚洲精品中文字幕99999| 亚洲 欧洲 日韩| 亚洲影院在线| 师生出轨h灌满了1v1| 日本一区二区三区免费乱视频| www久久久久久久| 亚洲夂夂婷婷色拍ww47| 中文字幕日本人妻久久久免费| 91黄色免费观看| 性做久久久久久久久久| 国产一区二区成人| www欧美xxxx| 成人美女免费网站视频| 精品中文字幕一区二区三区av| 欧美一区二视频在线免费观看| 亚洲国产欧美日韩在线观看第一区| 国产一区二区高清不卡| 97精品视频在线看| 日韩手机在线观看视频| 成人在线一区二区三区| 三级在线观看免费大全| 在线观看三级视频欧美| 少妇一区二区三区四区| 欧美黑人又粗大| 曰本一区二区| 日本高清久久一区二区三区| 亚洲国产高清视频| 99国产精品免费视频| 国产精品情趣视频| 亚洲精品国产无码| 亚洲精品自拍第一页| 182在线视频观看| 999国产在线| 91成人国产| 天天综合天天添夜夜添狠狠添| 国产69精品久久99不卡| 四虎国产成人精品免费一女五男| 国产精品福利一区| 中文字幕在线播放不卡| 亚洲人成电影在线播放| 韩国成人漫画| 日本不卡久久| 视频在线观看91| 六月婷婷七月丁香| 在线视频欧美精品| 国产在线观看黄| 国产成人精品视频| 成人高清av| 91极品视频在线观看| 欧美国产日产图区| 亚洲资源在线播放| 中文综合在线观看| 欧美午夜三级| 性欧美18一19内谢| 国产一区二区伦理片| 国产精品老熟女一区二区| 日韩无一区二区| 国产自产自拍视频在线观看| 精品国产乱码一区二区三区四区| 97精品国产| 青娱乐精品在线| 夜色激情一区二区| 视频二区在线观看| 奇门遁甲1982国语版免费观看高清| 成人久久精品| 青青青在线观看视频| 成人午夜av电影| 国产成人亚洲欧洲在线| 日韩精品极品毛片系列视频| **欧美日韩在线观看| 亚洲午夜精品久久久久久浪潮| 亚洲影音先锋| 大胸美女被爆操| 在线播放日韩导航| 在线观看小视频| 免费国产一区二区| 麻豆91精品视频| 久久老司机精品视频| 亚洲免费伊人电影在线观看av| 丰满诱人av在线播放| 国产精品一区二| 日本不卡中文字幕| 丝袜 亚洲 另类 欧美 重口| 精品国产精品网麻豆系列| 国模冰冰炮一区二区| 日本丰满少妇黄大片在线观看| 美女网站色91| 欧美黄色免费看| 亚洲免费小视频| 欧美专区视频| 亚洲爆乳无码专区| 亚洲综合久久av| 国产香蕉在线| 粉嫩高清一区二区三区精品视频| 欧美韩日精品| 人妻aⅴ无码一区二区三区| 555www色欧美视频| 国产粉嫩在线观看| 精品久久免费观看| 久久久99免费| 亚洲精品国产手机| 国产精品色午夜在线观看| 激情综合亚洲| 国产又粗又猛又爽又黄的视频小说| 欧美网站大全在线观看| 伊人影院在线视频| 天堂av一区二区|