国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
網(wǎng)購秒殺系統(tǒng)架構設計 | IT癮

網(wǎng)購秒殺系統(tǒng)架構設計

標簽:秒殺系統(tǒng)架構設計| 發(fā)表時間:2014-09-04 15:28 | 作者:jag522
分享到:
出處:http://www.iteye.com

秒殺活動的技術挑戰(zhàn)

1. 對現(xiàn)有網(wǎng)站業(yè)務造成沖擊

秒殺活動只是網(wǎng)站營銷的一個附加活動,這個活動具有時間短,并發(fā)訪問量大的特點,如果和網(wǎng)站原有應用部署在一起,必須會對現(xiàn)有業(yè)務造成沖擊,稍有不慎可能導致整個網(wǎng)站癱瘓。

2. 高并發(fā)下的應用、數(shù)據(jù)庫負載

用戶在秒殺開始前,通過不停刷新瀏覽器頁面以保證不會錯過秒殺,這些請求如果按照一般的網(wǎng)站應用架構,訪問應用服務器、連接數(shù)據(jù)庫,會對應用服務器和數(shù)據(jù)庫服務器造成極大的負載壓力。

3. 突然增加的網(wǎng)絡及服務器帶寬

假設商品頁面大小200K(主要是商品圖片大?。?,那么需要的網(wǎng)絡和服務器帶寬是2G(200K×10000),這些網(wǎng)絡帶寬是因為秒殺活動新增的,超過網(wǎng)站平時使用的帶寬。

4. 直接下單

秒殺的游戲規(guī)則是到了秒殺時間才能開始對商品下單購買,在此時間點之前,只能瀏覽商品信息,不能下單。而下單頁面也只是一個普通的URL,如果得到這個URL,不用等到秒殺開始就可以下單了。

 

秒殺系統(tǒng)的應對策略

1. 秒殺系統(tǒng)獨立部署

為了避免因為秒殺活動的高并發(fā)訪問而拖垮整個網(wǎng)站,使整個網(wǎng)站不必面對蜂擁而來的用戶訪問,可將秒殺系統(tǒng)獨立部署;如果需要,還可以使用獨立的域名,使其與網(wǎng)站完全隔離,即使秒殺系統(tǒng)崩潰了,也不會對網(wǎng)站造成任何影響。

2. 秒殺商品頁面靜態(tài)化

重新設計秒殺商品頁面,不使用網(wǎng)站原來的商品詳情頁面,頁面內容靜態(tài)化:將商品描述、商品參數(shù)、成交記錄和用戶評價全部寫入一個靜態(tài)頁面,用戶請求不需要經(jīng)過應用服務器的業(yè)務邏輯處理,也不需要訪問數(shù)據(jù)庫。所以秒殺商品服務不需要部署動態(tài)的Web服務器和數(shù)據(jù)庫服務器。

3. 租借秒殺活動網(wǎng)絡帶寬

因為秒殺新增的網(wǎng)絡帶寬,必須和運營商重新購買或者租借。為了減輕網(wǎng)站服務器的壓力,需要將秒殺商品頁面緩存在CDN,同樣需要和CDN服務商臨時租借新增的出口帶寬。

4. 動態(tài)生成隨機下單頁面URL

為了避免用戶直接訪問下單頁面URL,需要將該URL動態(tài)化,即使秒殺系統(tǒng)的開發(fā)者也無法在秒殺開始前訪問下單頁面的URL。辦法是在下單頁面URL加入由服務器端生成的隨機數(shù)作為參數(shù),在秒殺開始的時候才能得到。

 

秒殺系統(tǒng)架構設計

         秒殺系統(tǒng)為秒殺而設計,不同于一般的網(wǎng)購行為,參與秒殺活動的用戶更關心的是如何能快速刷新商品頁面,在秒殺開始的時候搶先進入下單頁面,而不是商品詳情等用戶體驗細節(jié),因此秒殺系統(tǒng)的頁面設計應盡可能簡單。

         商品頁面中的購買按鈕只有在秒殺活動開始的時候才變亮,在此之前及秒殺商品賣出后,該按鈕都是灰色的,不可以點擊。

         下單表單也盡可能簡單,購買數(shù)量只能是一個且不可以修改,送貨地址和付款方式都使用用戶默認設置,沒有默認也可以不填,允許等訂單提交后修改;只有第一個提交的訂單發(fā)送給網(wǎng)站的訂單子系統(tǒng),其余用戶提交訂單后只能看到秒殺結束頁面。

 

        除了上面提到的秒殺系統(tǒng)的技術挑戰(zhàn)及應對策略,還有一些其他問題需要處理。

1. 如何控制秒殺商品頁面購買按鈕的點亮

購買按鈕只有在秒殺開始的時候才能點亮,在此之前是灰色的。如果該頁面是動態(tài)生成的,當然可以在服務器端構造響應頁面輸出,控制該按鈕是灰色還是點亮,但是為了減輕服務器端負載壓力,更好地利用CDN、反向代理等性能優(yōu)化手段,該頁面被設計為靜態(tài)頁面,緩存在CDN、反向代理服務器上,甚至用戶瀏覽器上。秒殺開始時,用戶刷新頁面,請求根本不會到達應用服務器。

 

解決辦法是使用JavaScript腳本控制,在秒殺商品靜態(tài)頁面中加入一個JavaScript文件引用,該JavaScript文件中包含秒殺開始標志為否;當秒殺開始的時候生成一個新的JavaScript文件(文件名保持不變,只是內容不一樣),更新秒殺開始標志為是,加入下單頁面的URL及隨機數(shù)參數(shù)(這個隨機數(shù)只會產生一個,即所有人看到的URL都是同一個,服務器端可以用redis這種分布式緩存服務器來保存隨機數(shù)),并被用戶瀏覽器加載,控制秒殺商品頁面的展示。這個JavaScript文件的加載可以加上隨機版本號(例如xx.js?v=32353823),這樣就不會被瀏覽器、CDN和反向代理服務器緩存。


         這個JavaScript文件非常小,即使每次瀏覽器刷新都訪問JavaScript文件服務器也不會對服務器集群和網(wǎng)絡帶寬造成太大壓力。

 

2. 如何只允許第一個提交的訂單被發(fā)送到訂單子系統(tǒng)

由于最終能夠成功秒殺到商品的用戶只有一個,因此需要在用戶提交訂單時,檢查是否已經(jīng)有訂單提交。如果已經(jīng)有訂單提交成功,則需要更新JavaScript文件,更新秒殺開始標志為否,購買按鈕變灰。事實上,由于最終能夠成功提交訂單的用戶只有一個,為了減輕下單頁面服務器的負載壓力,可以控制進入下單頁面的入口,只有少數(shù)用戶能進入下單頁面,其他用戶直接進入秒殺結束頁面。假設下單服務器集群有10臺服務器,每臺服務器只接受最多10個下單請求。在還沒有人提交訂單成功之前,如果一臺服務器已經(jīng)有十單了,而有的一單都沒處理,可能出現(xiàn)的用戶體驗不佳的場景是用戶第一次點擊購買按鈕進入已結束頁面,再刷新一下頁面,有可能被一單都沒有處理的服務器處理,進入了填寫訂單的頁面,可以考慮通過cookie的方式來應對,符合一致性原則。當然可以采用最少連接的負載均衡算法,出現(xiàn)上述情況的概率大大降低。


小結

        秒殺是對網(wǎng)站架構的極大考驗,在難以預計和控制的高并發(fā)訪問的沖擊下,稍有不慎,系統(tǒng)就會被用戶秒殺,導致整個系統(tǒng)宕機,活動失敗,構成重大事故。因此在遵循秒殺活動游戲規(guī)則的基礎上,為了保證系統(tǒng)的安全,保持適度的公平公正即可。即使系統(tǒng)出了故障,也不應該給用戶顯示出錯頁面,而是顯示秒殺活動結束頁面,避免不必要的困擾。

 

本文摘自李智慧的《大型網(wǎng)站技術架構:核心原理與案例分析》,對文中的內容做了一點細化與補充。

 



已有 0 人發(fā)表留言,猛擊->> 這里<<-參與討論


ITeye推薦



相關 [秒殺 系統(tǒng)架構 設計] 推薦:

網(wǎng)購秒殺系統(tǒng)架構設計

- - 企業(yè)架構 - ITeye博客
秒殺活動只是網(wǎng)站營銷的一個附加活動,這個活動具有時間短,并發(fā)訪問量大的特點,如果和網(wǎng)站原有應用部署在一起,必須會對現(xiàn)有業(yè)務造成沖擊,稍有不慎可能導致整個網(wǎng)站癱瘓. 用戶在秒殺開始前,通過不停刷新瀏覽器頁面以保證不會錯過秒殺,這些請求如果按照一般的網(wǎng)站應用架構,訪問應用服務器、連接數(shù)據(jù)庫,會對應用服務器和數(shù)據(jù)庫服務器造成極大的負載壓力. 假設商品頁面大小200K(主要是商品圖片大?。?,那么需要的網(wǎng)絡和服務器帶寬是2G(200K×10000),這些網(wǎng)絡帶寬是因為秒殺活動新增的,超過網(wǎng)站平時使用的帶寬. 秒殺的游戲規(guī)則是到了秒殺時間才能開始對商品下單購買,在此時間點之前,只能瀏覽商品信息,不能下單.

解剖Twitter:Twitter系統(tǒng)架構設計分析

- flychen50 - 互聯(lián)網(wǎng)的那點事
隨著信息爆炸的加劇,微博客網(wǎng)站Twitter橫空出世了. 用橫空出世這個詞來形容Twitter的成長,并不夸張. 從2006年5月Twitter上線,到2007年12月,一年半的時間里,Twitter用戶數(shù)從0增長到6.6萬. 又過了一年,2008年12月,Twitter的用戶數(shù)達到5百萬. Twitter網(wǎng)站的成功,先決條件是能夠同時給千萬用戶提供服務,而且提供服務的速度要快. 有觀點認為,Twitter的業(yè)務邏輯簡單,所以競爭門檻低. 前半句正確,但是后半句有商榷余地. Twitter的競爭力,離不開嚴謹?shù)南到y(tǒng)架構設計. Twitter的核心業(yè)務邏輯,在于Following和Be followed.

基于Hadoop的Clearinghouse系統(tǒng)架構設計

- - CSDN博客架構設計推薦文章
1 Clearinghouse(數(shù)據(jù)交換中心)介紹.        Clearinghouse(數(shù)據(jù)交換中心)是隨著異構組織之間共享空間數(shù)據(jù)而產生的,它的目標是建立一個虛擬空間數(shù)據(jù)機制,用來收集空間數(shù)據(jù)的元數(shù)據(jù)和發(fā)布服務,以便高效的獲取空間數(shù)據(jù),同時利用空間數(shù)據(jù)提供決策支持. 通常建立Clearinghouse的基本途徑是通過一套元數(shù)據(jù)標準,收集各個組織中空間數(shù)據(jù)的元數(shù)據(jù),通過服務接口幫助用戶確定存在哪些數(shù)據(jù),以及獲取這些數(shù)據(jù)的方式等. 但是隨著各個組織中的空間數(shù)據(jù)的快速增長,其元數(shù)據(jù)條目也在不斷增多.         Clearinghouse的功能概括如下:. (1)是一個可查詢的信息目錄.

海爾電商峰值系統(tǒng)架構設計最佳實踐

- - 博客園_知識庫
  多數(shù)電商平臺都會經(jīng)歷相似的過程,流量和業(yè)績每年以幾倍至十幾倍的速度增長,每年都要接受幾次大規(guī)模、全方位的系統(tǒng)檢閱,例如雙11、周年慶等購物狂歡節(jié),期間流量和訂單可能是日常的十幾倍甚至幾十倍,產生的峰值對平臺形成極其強烈的沖擊,對電商平臺的架構帶來巨大的考驗. 因此,對電商平臺的規(guī)劃和架構工作不僅要高瞻遠矚,而且要細致入微,否則將導致平臺無法滿足高速增長的業(yè)務發(fā)展,細微處的失誤也可能造成嚴重后果,不僅影響業(yè)務指標的實現(xiàn),還可能導致對系統(tǒng)進行重新架構,勞時費力又傷錢.   從2012年開始,海爾進入了網(wǎng)絡化發(fā)展階段,企業(yè)平臺化、用戶個性化和員工創(chuàng)客化的“三化”做法為電商的蓬勃發(fā)展提供了很好的土壤,也是海爾在面對互聯(lián)網(wǎng)轉型時的一個重點.

插件式架構設計實踐一:插件式系統(tǒng)架構設計簡介

- water - 博客園-首頁原創(chuàng)精華區(qū)
  本系列博文將使用微軟RIA技術解決方案Silverlight以及擴展性管理框架Managed Extensibility Framework(MEF),以插件式架構設計為導線,分享本人在從事基于微軟Silverlight技術構建的RIA系統(tǒng)中實施插件式系統(tǒng)架構設計的相關技術和經(jīng)驗. 鑒于本人能力有限,如有不妥之處請各位朋友指正,大家共同學習、進步,謝謝.   軟件的工業(yè)化使得軟件復用已經(jīng)從通用類庫進化到了面向領域的應用框架. 應用框架強調的是軟件的設計重用性和系統(tǒng)的課擴展性,以縮短大型應用軟件系統(tǒng)的開發(fā)周期,提高開發(fā)質量. 應用軟件開發(fā)的未來就在于提供一個開放的體系結構,以方便中間件的選擇、組裝和集成,應用框架的重用已成為軟件開發(fā)生產中最有效的重用方式之一.

關于一個大型web系統(tǒng)架構設計和技術選型的討論摘錄

- weiwei - FeedzShare
來自: GGMM - FeedzShare  . 發(fā)布時間:2007年11月07日,  已有 5 人推薦. 【學習】關于一個大型web系統(tǒng)架構設計和技術選型的討論摘錄. 2007年09月13日 星期四 上午 09:36. 所有的壓力最終都會反映到數(shù)據(jù)庫方面,一定要對數(shù)據(jù)庫有一個整體的規(guī)劃. 可以按照業(yè)務、區(qū)域等等特性對數(shù)據(jù)庫進行配置,可以考慮分庫、使用rac、分區(qū)、分表等等策略,確保數(shù)據(jù)庫能正常的進行交易. 你采用了兩種類型數(shù)據(jù)庫,一個SQL Server、一個oracle,如果一個交易需要在兩個數(shù)據(jù)庫中操作,那么必須考慮到分布式事務,你應該仔細的設計你的系統(tǒng),來避免使用分布式事務,以避免分布式事務帶來更多的數(shù)據(jù)庫壓力和其它問題.

HBase 系統(tǒng)架構

- - 博客園_首頁
HBase是Apache Hadoop的數(shù)據(jù)庫,能夠對大型數(shù)據(jù)提供隨機、實時的讀寫訪問. HBase的目標是存儲并處理大型的數(shù)據(jù). HBase是一個開源的,分布式的,多版本的,面向列的存儲模型. 5 可在廉價PC Server搭建大規(guī)模結構化存儲集群. HBase是Google BigTable的開源實現(xiàn),其相互對應如下:. 文件存儲系統(tǒng)   GFS   HDFS. 海量數(shù)據(jù)處理   MapReduceHadoop MapReduce. 協(xié)同服務管理ChubbyZookeeper. HBase位于結構化存儲層,圍繞HBase,各部件對HBase的支持情況:. HDFS高可靠的底層存儲支持. MapReduce 高性能的計算能力.

秒殺系統(tǒng)設計的知識點

- - 互聯(lián)網(wǎng) - ITeye博客
A, 高并發(fā),cache,鎖機制 . B, 基于緩存架構redis,Memcached的先進先出隊列. C, 稍微大一點的秒殺,肯定是分布式的集群的,并發(fā)來自于多個節(jié)點的JVM,synchronized所有在JVM上加鎖是不行了. F, 如何防止用戶來刷, 黑名單. G, 利用memcached的帶原子性特性的操作做并發(fā)控制. . 比如有10件商品要秒殺,可以放到緩存中,讀寫時不要加鎖. 當并發(fā)量大的時候,可能有25個人秒殺成功,這樣后面的就可以直接拋秒殺結束的靜態(tài)頁面. 進去的25個人中有15個人是不可能獲得商品的. 所以可以根據(jù)進入的先后順序只能前10個人購買成功.        比如某商品10件物品待秒.

Facebook 的系統(tǒng)架構

- Ivan - 博客園新聞頻道
  來源:http://www.quora.com/What-is-Facebooks-architecture (由Micha?l Figuière回答).   根據(jù)我現(xiàn)有的閱讀和談話,我所理解的今天Facebook的架構如下:. Web 前端是由 PHP 寫的. Facebook 的 HipHop [1] 會把PHP轉成 C++并用 g++編譯,這樣就可以為模板和Web邏賀業(yè)務層提供高的性能. 業(yè)務邏輯以Service的形式存在,其使用Thrift [2]. 這些Service根據(jù)需求的不同由PHP,C++或Java實現(xiàn)(也可以用到了其它的一些語言……). 用Java寫的Services沒有用到任何一個企業(yè)級的應用服務器,但用到了Facebook自己的定制的應用服務器. 
本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
網(wǎng)購秒殺系統(tǒng)的設計
秒殺系統(tǒng)架構分析與實戰(zhàn)(反饋非常好的文章,推薦)
這一次,徹底弄懂“秒殺系統(tǒng)”
?叮咚買菜下單后怎么加菜
電商系統(tǒng)架構全鏈路解析
微信:微信掃碼支付、調用統(tǒng)一下單接口、網(wǎng)站支付 + springmvc
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服