精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

少妇太紧太爽又黄又硬又爽小说| 韩国无码av片在线观看网站| 成人毛片一区二区三区| 欧美日韩一二| 欧美一区二区视频在线观看2020| 亚洲激情免费视频| 水莓100国产免费av在线播放| 日本vs亚洲vs韩国一区三区| 久久影院中文字幕| 性色av蜜臀av色欲av| av激情成人网| 亚洲伊人色欲综合网| 欧美国产一二三区| 国产免费一区二区三区最新不卡| 91久久亚洲| 色琪琪综合男人的天堂aⅴ视频| 992tv人人草| 日本а中文在线天堂| 亚洲欧洲精品一区二区三区| 精品乱码一区| 99热这里只有精品66| 亚洲一区网站| 欧美日本中文字幕| 亚洲欧洲综合网| 欧美绝顶高潮抽搐喷水合集| 欧美美女激情18p| 狠狠爱免费视频| 性国产高清在线观看| 欧美国产1区2区| 国内精品久久国产| 国产免费一区二区三区最新不卡| 日韩在线卡一卡二| 性色av一区二区三区红粉影视| 成人无码精品1区2区3区免费看| 欧美国产极品| 精品国产一区二区三区四区四 | 亚洲十八**毛片| 亚洲同性同志一二三专区| 欧美日韩综合网| 亚洲精品视频91| 国产一区二区三区日韩| 国产免费一区二区三区在线能观看| 国产福利拍拍拍| 国产精品地址| 欧美成人在线网站| 国产精品夜夜夜爽阿娇| 久久亚洲精品中文字幕蜜潮电影| 亚洲免费福利视频| 精品无码在线视频| 97se亚洲| 精品99999| 动漫美女无遮挡免费| 精品国产一区二区三区2021| 欧美美女bb生活片| 91女神在线观看| 成人国产网站| 欧美性大战久久久久久久蜜臀| 国产精品免费观看久久| 伊人久久视频| 日本韩国精品在线| 欧美 日韩 激情| 色偷偷偷在线视频播放| 精品成人av一区| 国产一区二区视频播放| 96av在线| 欧美日韩一二三四五区| 男人操女人免费| 345成人影院| 色婷婷综合久久久中文字幕| 久久人妻精品白浆国产 | 精品久久香蕉国产线看观看亚洲| 免费在线看黄色片| 678在线观看视频| 欧美视频在线看| 99草草国产熟女视频在线| 国产欧美一区二区三区精品酒店| 91福利视频在线| 色戒在线免费观看| 免费精品一区| 欧美精品一区二区久久婷婷| 欧美特黄一区二区三区| 欧洲杯半决赛直播| 久久av资源网站| 国产精品suv一区二区| 一区二区三区精品视频在线观看| 欧美亚洲一级片| 中文字幕黄色av| 国产一区二区不卡在线| 国产精品视频一区二区三区经| 香蕉视频911| 国产精品天美传媒| 国产乱人伦精品一区二区三区| 成人影院在线播放| 在线免费观看不卡av| 网站在线你懂的| 看全色黄大色大片免费久久久| 亚洲欧美综合精品久久成人| 在线观看天堂av| 激情综合中文娱乐网| 国产成人激情视频| 精品国自产在线观看| 2021国产精品久久精品| 一区二区三区我不卡| 男插女视频久久久| 欧美日韩美女在线| 天天操天天干天天做| 欧美日日夜夜| 久久视频在线观看免费| 免费看日韩毛片| 精品中文av资源站在线观看| 精品在线视频一区二区| 欧美性videos| 欧美日韩国产一区中文午夜| 一级黄色录像在线观看| 四虎884aa成人精品最新| 久久夜精品香蕉| 高潮毛片又色又爽免费| 国产精品1区二区.| 亚洲国产综合自拍| 国内精彩免费自拍视频在线观看网址| 欧美男生操女生| 在线免费观看黄色小视频| 欧美成人午夜| 成人精品一区二区三区电影免费 | 天堂а√在线中文在线| 亚洲伦理影院| 亚洲精品v欧美精品v日韩精品| 成人免费精品动漫网站| 日韩成人av影视| 精品一区久久久| 欧美人与性动交α欧美精品济南到| 欧美性猛交xxxxxx富婆| 亚洲第一香蕉网| 一本色道久久综合亚洲精品不卡| 亚洲字幕在线观看| 日本在线视频站| 在线观看日韩精品| 国产黄色网址在线观看| 99pao成人国产永久免费视频| 91亚洲精华国产精华| 亚洲1卡2卡3卡4卡乱码精品| 日韩欧美国产一区二区| 无码人妻aⅴ一区二区三区| 欧美三级午夜理伦三级中文幕| 成人情趣片在线观看免费| 春暖花开成人亚洲区| 一本色道久久加勒比精品| 日韩精品人妻中文字幕有码 | 国产模特av私拍大尺度| 国产精品超碰97尤物18| 亚洲精品手机在线观看| 久久精品高清| 国产在线视频2019最新视频| 午夜视频在线| 欧美日本高清视频在线观看| 五月婷婷六月香| 蜜臀av一区二区在线免费观看| 日韩av一区二区三区在线观看| 在线看片福利| 亚洲丝袜在线视频| 在线观看你懂的网站| 日本一区二区三区在线不卡| 黄色一级二级三级| 日本欧美国产| 91精品国产综合久久久久久久久 | 欧美激情按摩在线| 亚洲精品一区二区三区新线路| 亚洲一区二区三区激情| 97人妻精品一区二区三区免费| 在线看片成人| 久久综合精品一区| 欧美日韩五码| www亚洲精品| 丰满人妻一区二区三区四区53| 亚瑟在线精品视频| 30一40一50老女人毛片| 日本视频一区二区三区| 中文网丁香综合网| 亚洲小说春色综合另类电影| 97色在线视频| sese在线视频| 日韩欧美一卡二卡| 国产69精品久久久久久久久久| 久久久一区二区三区| 奇米影音第四色| 好吊视频一区二区三区四区| 久久综合精品一区| 亚洲精品自拍| 97精品在线观看| wwwxxx在线观看| 欧美大片在线观看| 99久久久久久久久| 综合亚洲深深色噜噜狠狠网站| 少妇精品无码一区二区三区| 日本在线不卡视频| 一级特黄妇女高潮| 中文有码一区| av资源站久久亚洲| 户外露出一区二区三区| 欧美精品在线第一页| 午夜影院免费体验区| 在线视频综合导航| 免费一级肉体全黄毛片| 国产亚洲一区二区三区在线观看 | 99re在线精品| 精品综合久久久久| 国产精品毛片| 欧美xxxx吸乳| 国产在线日韩精品| av色综合网| aa亚洲一区一区三区| 欧美最近摘花xxxx摘花| √天堂8在线网| 三级精品视频久久久久| 神马久久久久久久久久| 欧美福利一区二区| 日韩人妻精品中文字幕| 亚洲一区二区三区视频在线| 久久嫩草捆绑紧缚| 久久精品在这里| 看全色黄大色黄女片18| 久久99久久99| 午夜激情福利在线| 日韩午夜在线| 成年人看的毛片| 永久91嫩草亚洲精品人人| 性刺激综合网| 欧美精品色图| 久久婷婷开心| 国产亚洲精品美女久久| 亚洲www在线| 免费一区二区三区四区| 日本伊人精品一区二区三区介绍| 成年人视频免费在线播放| 久久手机精品视频| 在线激情网站| 亚洲天堂av高清| 女人天堂在线| 日韩av一卡二卡| 色呦呦中文字幕| 欧美精品一区二区蜜臀亚洲| 国产黄色av片| 欧美一区二区视频免费观看| 97人人爽人人爽人人爽| 欧美日本乱大交xxxxx| 一本一道精品欧美中文字幕| 欧美色国产精品| 最近国语视频在线观看免费播放| 色诱视频网站一区| 国产又大又黄视频| 欧美日韩在线另类| 九九九在线观看| 色综合久久综合网欧美综合网| 91午夜视频在线观看| 性欧美大战久久久久久久久| 日本一区二区三区四区五区| 亚洲成av人综合在线观看| 亚洲欧美在线观看视频| 精品美女久久久久久免费| 91蜜桃视频在线观看| 欧美午夜影院在线视频| 午夜精品免费观看| 91精品福利在线| 在线观看免费高清视频| 在线成人av影院| 午夜美女福利视频| 亚洲精品wwww| 第一页在线观看| 久久综合国产精品台湾中文娱乐网| 久操免费在线| 欧美极品少妇全裸体| 涩涩视频在线| 国产精品久久久久久久久久久久久 | 国产精品呻吟久久| 日韩视频免费观看高清完整版在线观看 | 黑人另类av| 欧美女优在线视频| 亚洲一区二区三区精品在线观看 | 玩弄中年熟妇正在播放| 久久深夜福利| 九一精品久久久| 粉嫩aⅴ一区二区三区四区五区| 性久久久久久久久久久| 久久久91精品国产一区二区精品 | 亚洲欧洲日韩综合| 久久先锋影音av鲁色资源网| 欧美色图17p| 亚洲狠狠爱一区二区三区| av毛片在线免费观看| 欧美日韩国产免费一区二区 | 欧美日一区二区三区| 91欧美激情另类亚洲| 极品尤物一区| 亚洲午夜精品久久久中文影院av| 欧美一区影院| 97成人在线观看视频| 精品一区二区国语对白| 加勒比精品视频| 自拍偷拍国产精品| 日韩欧美一级视频| 欧美日韩国产成人在线免费| 少妇喷水在线观看| 精品国偷自产在线视频99| 成人免费观看在线观看| 国产精品专区h在线观看| 国产精品久久久久久久久久白浆| 天堂精品视频| 99在线精品视频在线观看| 日本在线播放一区二区| 91女人视频在线观看| 成人在线观看高清| 91久久精品一区二区| 少妇精品高潮欲妇又嫩中文字幕| 久久久成人精品视频| 日韩av福利| 国产精品日韩一区二区三区| 久久久国产精品| 已婚少妇美妙人妻系列| 成人一区在线观看| 紧身裙女教师波多野结衣| 在线免费亚洲电影| 天堂av在线7| 性欧美亚洲xxxx乳在线观看| 日韩精品亚洲专区在线观看| 亚洲春色在线视频| 久久动漫亚洲| yy6080午夜| 一卡二卡三卡日韩欧美| 91片黄在线观看喷潮| 国产亚洲欧洲高清| 黄色成人免费网| 精品无码久久久久国产| 国产尤物精品| 中文字幕人妻无码系列第三区| 欧美激情中文不卡| 免费av中文字幕| 亚洲欧美综合v| 英国三级经典在线观看| 久久精品美女| 国产精品毛片一区二区三区| 亚洲午夜久久久久久久久| 亚洲欧美成人一区二区三区| 国产一区二区小视频| 日韩视频精品在线| 在线视频成人| 香蕉精品视频在线| 老汉av免费一区二区三区| 国产大屁股喷水视频在线观看| 欧美无乱码久久久免费午夜一区| 九色视频在线播放| 奇门遁甲1982国语版免费观看高清| 日韩影视高清在线观看| 九色在线视频观看| 久久综合久色欧美综合狠狠| 你懂的国产在线| 亚洲欧洲在线播放| 日本欧美韩国| 一区二区三区av在线| 国产在线播精品第三| 男人操女人的视频网站| 日韩一区二区三区精品视频 | 亚洲激情综合网| 性做久久久久久久久久| 性欧美在线看片a免费观看| 天堂成人娱乐在线视频免费播放网站| 日韩免费毛片视频| 国产欧美综合色| 中文字幕在线观看欧美| 久久视频精品在线| jizz国产精品| 热久久精品国产| 国产精品久久久久影院色老大| 国产精品人人妻人人爽| 久久久久久亚洲精品不卡| 亚欧日韩另类中文欧美| xxxx一级片| 亚洲欧美一区二区三区极速播放 | 亚洲日韩中文字幕| 欧美成人福利| 日韩精品一区二区免费| 91视频精品在这里| 亚洲影院一区二区三区| 欧美另类xxx| 亚洲毛片免费看| 亚洲三级在线观看视频| 亚洲国产精品自拍| 黄网站在线观看| 97超级碰碰| 三级影片在线观看欧美日韩一区二区| 性爱在线免费视频| 日韩欧美国产精品一区| 成人免费网站视频| 日本三级中文字幕在线观看| 91日韩在线专区| a毛片在线免费观看| 2020欧美日韩在线视频| 1024精品久久久久久久久| 亚洲成人av免费在线观看| 欧美男女性生活在线直播观看| 在线看的毛片|