亚洲日本一区二区三区在线不卡-午夜成人亚洲理伦片在线观看-亚洲中文字幕无码久久综合网-国产亚洲成av人片在线观看-国产69精品久久久久999小说

當前位置: 首頁 >

個人網站建設見解:網絡訂購車票12306網站

來源: 做網站    發布日期: 2012-01-12 09:24    點擊量: 18109

春節即將來臨,大家想必目前最重要的事就是買車票回家了。這是個春運時刻,車票都是非常緊張的,所以大家都在通過各種渠道搶能往溫暖家的懷抱的旅程票。有的在電話上訂購,有的在代售點排起長長的列隊,現在的網絡這么發達,怎么可以沒有網絡訂票呢,今天2012的春運就建立起來了一個完整的網站,最強大的一個系統就是網絡訂票。這個網站建設的對我們是那么的重要。

關于12306網站和清華某院長的微博言論,我做了一個小回復,說這玩意不難,2個人2周,40臺服務器可以搞定。

下面詳細解釋一下大概的思路。免費share一下,看看靠譜不靠譜。

別人看到的是流量,我先看結構,這里的數據結構是相當簡單的,主要滿足的需求是:

1.車次查詢(最常見的是起點站,終點站查詢 和車次直接輸入查詢)+余票顯示

所謂的用戶刷頁面,絕大部分應該在這里。日均10億pv(這個數字我先質疑一下,不過么關系,后面再說怎么處理),估計主要落在這個查詢上。

2.注冊,登陸。每天過千萬人次是有的

3.下單,也就是日成交訂單量,可能存在下單失敗,約幾百萬次。

這里基本不涉及復雜的關系操作,不涉及推拉結構,和新浪微博,facebook這樣的應用場景相比,在數據關系上簡直毫無難度,這也才是我敢說大話的原因。

因為不涉及復雜的關系操作,不涉及個性展示(不同用戶搜索同樣的條件,結果一致),那么緩存化就是最佳途徑。

1.存儲key-value化, 推薦redis

基本上查詢都是直線式的,所以key-value就是很好的工具;因為出票可能需要找一下車次,座位,只能一一對應的查詢就不好用;弄個redis帶個列表結構(dict or zset ,哪個結構更合適?問問新浪架構師楊衛華吧,這事估計對他太簡單了)進去就可以了。春節放票總共多少張?又不是一次放出來,每張票對應一個key,一個value,能吃多少內存?后面跟個數據庫做同步,這點數據量對于現在的服務器來說根本不是問題。

注冊登陸也可以在 mysql基礎上弄個redis掛在前頭響應,這種查詢速度,biu.

根據不同車次分幾臺服務器,響應速度根本不是問題。

2.將所有查詢結果緩存化,靜態化

首先明確一下查詢的步驟,實際上主要查詢分兩步

第一步是查詢符合要求的車次,第二步是查詢余票。

緩存也就分兩步做,起始地,目標地查詢 - 常見查詢目標(如北京到成都)全部預制緩存。非常見查詢目標,基于第一次查詢的結果緩存,這樣查詢車次基本上無壓力。

查詢有票狀態就更簡單了,因為票數只有有票,無票兩個狀態,某日某車次作為一個key-value類型存儲(仍用redis即可)。某類車票發生從有到無或從無到有的變化,才通知緩存更新。更新是后臺通知的,而非基于用戶查詢。比如某車次硬臥票售完,通知一次更新,硬座售完,通知一次更新,軟座售完,通知一次更新。以此類推,這樣的緩存更新次數極少。而且可以給前端返回甚至靜態結果(基于查詢條件生成靜態結果,是個網站推廣都都會的,后臺在票數變化時通知更新,這樣結構上就與前端查詢無關了,而且一樣可以保持實時性)。

如果你較真說,其實一個車次在不同區間也存在有無票的不同,的確,不過按照同樣思路,結構多做一層死不了人的。畢竟這只是概述。但是核心思路不變,緩存的變更次數遠少于查詢請求次數,這就夠了。

3.前端緩存處理

很多人被10億請求數嚇到了,其實這里水分很大,最多的是重復刷新和外掛工具,那么如果你做到基于2的查詢結果緩存化,這一步就簡單了;直接參見這篇文章,大量的用戶重復刷新根本不是問題。 想知道實際效果,看這里1小時20億的刷新都不怕,還怕你一天10億刷新?

4.i/o推廣

其實我甚至覺得用了redis都不需要做i/o推廣了,如果用戶單據需要數據庫保存,一天200萬單嘛,搜一下 淘寶技術專家余鋒分享的qcon講座文檔,順便讀一下他歷來新浪微博分享的文字,這個需求簡直就是小兒科了。 大不了狠狠心買幾塊ssd硬盤做raid1/0,對于我這樣的窮架構師來說,都屬于大手筆了,至于昂貴的fusion-io,我真覺得,這個場景用不著,實在用不著。

這里關鍵點,是查詢結果的靜態化和前段緩存的利用

查詢怎么可能靜態化?

因為

1:重復查詢的頻度遠遠大于數據更新的頻度(即便是票數的更新,也是500:1,更不用說是有無的變化)

2:靜態化不代表不動態更新,在訂票成功后,如果發生了票數狀態的改變(是狀態改變,而不是數字改變),服務端更新或刪除該靜態結果(下一次查詢重新生成靜態結果)

至于為什么說2人2周,別搞花的,別圖好看,就把這些結構捋清楚,代碼能有多少行?這玩意沒什么工作量。

此外,有人說,你肯定沒考慮神馬神馬神馬神馬;您說對了,我還真沒考慮這么多,畢竟鐵道部沒給我1000多萬,不過真要是給了我1000多萬,我用三天時間考慮清楚,肯定比這不到1個小時整理的東西詳細,您覺得呢,剩下一周半干活足夠完工了,過完這一周半,2011年的網頁設計任務算是完結了,該回家和親愛的家人團聚了。

相關新聞

CONTACT USCAREERSFOODSERVICEPRESSPRIVACY POLICY
? 2014 yijueweb. All rights reserved.
?
 
主站蜘蛛池模板: 午夜射精日本三级| 亚洲人成人网站色www| 97在线视频人妻无码| 亚洲中文字幕无码爆乳av| 各处沟厕大尺度偷拍女厕嘘嘘| 国产亚洲精品aaaa片小说| 国产偷国产偷精品高清尤物| 男人和女人做爽爽免费视频| 亚洲av纯肉无码精品动漫| 亚洲国产成人久久综合| 东北女人毛多水多牲交视频| 亚洲av无码成人精品区一本二本| 人妻av无码一区二区三区| 国产精品日韩欧美一区二区三区| 国产精品久久久久乳精品爆| 欧美大屁股xxxxhd黑色| 国产无遮挡18禁网站免费| 久精品国产欧美亚洲色aⅴ大片 | 久久天天躁狠狠躁夜夜免费观看| 国产精品无码无片在线观看3d| 亚洲人ⅴsaⅴ国产精品| 亚洲av无码一区二区三区性色| 国产精品亚洲综合色区韩国| 天天躁日日躁狠狠躁| 一色屋精品视频在线观看| 国产真实伦在线观看| 欧美亚洲国产一区二区三区| 黑人粗大猛烈进出高潮视频| 特黄特色三级在线观看| 丁香花视频免费播放社区| 小婷又软又嫩又紧水又多的视频| 2022精品久久久久久中文字幕 | 欧洲熟妇色xxxxx欧美老妇伦| 天天狠天天天天透在线| 少妇高潮尖叫黑人激情在线 | 亚洲av午夜成人片精品网站| 中文字幕精品一区二区2021年| 国产精品亚洲欧美大片在线观看| 国产黑色丝袜在线观看下| 久久精品午夜一区二区福利| 韩国无码一区二区三区免费视频 |