導航:首頁 > 萬維百科 > 大型電商網站架構詳細設計

大型電商網站架構詳細設計

發布時間:2020-09-13 13:42:46

1、大型網站架構模式有哪些

1.分布式
對於大型網站,分層和分割的一個主要目的是為了切分後的模塊便於分布式部署,即將不同模塊部署在不同的伺服器上,通過遠程調用協同工作。分布式意味著可以使用更多的計算機完成同樣的功能,計算機越多,CPU、內存、存儲資源也就越多,能夠處理的並發訪問和數據量就越大,進而能夠為更多的用戶提供服務。
2.分層
分層是企業應用系統中最常見的一種架構模式,將系統在橫向維度上切分成幾個部分,每個部分負責一部分相對比較單一的職責,然後通過上層對下層的依賴和調用組成一個完整的系統。
分層結構在計算機世界中無處不在,網路的7層通信協議是一種分層結構;計算機硬體、操作系統、應用軟體也可以看作是一種分層結構。在大型網站架構中也採用分層結構,將網站軟體系統分為應用層、服務層、數據層。
3.分割
如果說分層是將軟體在橫向方面進行切分,那麼分割就是在縱向方面對軟體進行切分。
網站越大,功能越復雜,服務和數據處理的種類也越多,將這些不同的功能和服務分割開來,包裝成高內聚低耦合的模塊單元,一方面有助於軟體的開發和維護;另一方面,便於不同模塊的分布式部署,提高網站的並發處理能力和功能擴展能力。
4.集群
使用分布式雖然已經將分層和分割後的模塊獨立部署,但是對於用戶訪問集中的模塊(比如網站的首頁),還需要將獨立部署的伺服器集群化,即多台伺服器部署相同應用構成一個集群,通過負載均衡設備共同對外提供服務。
5.緩存
緩存就是將數據存放在距離計算最近的位置以加快處理速度。緩存是改善軟體性能的第一手段,現代CPU越來越快的一個重要因素就是使用了更多的緩存,在復雜的軟體設計中,緩存幾乎無處不在。大型網站架構設計在很多方面都使用了緩存設計。
6.非同步
計算機軟體發展的一個重要目標和驅動力是降低軟體耦合性。事物之間直接關系越少,就越少被彼此影響,越可以獨立發展。大型網站架構中,系統解耦合的手段除了前面提到的分層、分割、分布等,還有一個重要手段是非同步,業務之間的消息傳遞不是同步調用,而是將一個業務操作分成多個階段,每個階段之間通過共享數據的方式非同步執行進行協作。

2、大型網站架構該怎麼優化設計

你得把你的網站拿出來看了才知道怎麼優化改進。並不是說每個網站的優化思路都一樣。比如,你優化結構之前你得考慮你的長尾關鍵詞要怎麼擴展,長尾詞是不是有規律可循。如果有規律,你可以直接利用程序生成標題,生成內容。要根據你的設計思路去設計網站結構。要是每個網站優化思路都一樣,那為什麼不直接程式化,還拿優化運營來做什麼?自動化多好。但是,這是不現實的。所以,你的提問沒人能幫得到你。

3、電子商務網站一般架構有哪些

大型電子商務網站架構,摘抄 7.同一個網站的多語言該如何處理是好,使用配置文件然後cookie或url來判別?===客戶是自己公司,使用標准方法即可
8.電子商務網站最多的就是 商品的打折方式和積分的贈送了,這里要怎麼設計才好(工廠模式)?===采購成熟的規則引擎
9.如果同一時間並發大量訂單的話,如果確保一個訂單的有效提交呢?
==電子商務一般要使用MQ,推薦IBM MQ;使用MSMQ也可
第一點是資料庫要設計好,要達到什麼級別,你可能需要考慮哪些表需要拆分,哪些表的核心數據需要冗餘,如果是mysql,還要考慮其他的問題,比如存儲引擎。
新聞肯定是要生成純靜態頁,對資料庫壓力就小很多,不過靜態頁也有管理上的不方便,更新刪除添加都要對磁碟文件進行操作
做一個自定義緩存層,對緩存邏輯進行控制,可以採用第三方緩存模塊,如果使用.net來做,可以層層緩存,頁面緩存,數據緩存(memcache,不過在win下效率不高)
電子商務網站特點就是對事務的嚴格,需要資料庫設計的時候要求高性能,也需要合適的索引,支持高並發,經常對產品表用戶表等進行索引檢查,是否有很多索引掃描和表掃描(即使是局部的,也要將逗局部地控制到最小范圍)
mssql語句對不需要事務的查詢要附帶上with(nolock),以利於並發更新。
有些功能模塊不能按照想當然的方式開發,比如產品訪問次數,切不可將這些更新非常頻繁的欄位置於核心表內,明確的做法是將其剝離開來 還有就是切不可經常性將欄位設計成bool類型,這樣會給以後的擴展留出路,即使是男女這種欄位,也建議採用tiny類型
其他還有就是在產品設計的時候充分考慮seo,網站目錄結構清晰可讀,而不是帶著一串串的查詢參數。
對安全要有整體的把握,最好全都是用存儲過程,在項目上線前將資料庫存儲過程全部導出再查找貌似exec的語句,查找是否需要替換成sp_executesql。
另外,如果採用mssql,全文搜索直接用mssql fte就可以,速度和精確度都還是可以的,最重要的是維護和管理開發很簡單。
打折的處理可以按照電信的一次,二次批價功能,如果你做過電信方面的系統。
當然也可以設計得更簡單的一些。 靜態的頁面建議使用CDN加速,以解決網通和電信之間訪問速度的問題;
數據的緩存方面建議考慮用memcache,另外也可以分別在表現層和數據層利用.net中的現存緩存機製作業可;
簡單執行的sql可以不用存儲過程,存儲過程會佔用資料庫伺服器的處理時間,造成死鎖;
mvc建議還是做些CMS的項目上應用,電子商城不是很適合,個人觀點。url上可以做轉義,使url顯示更友好;
資料庫建議建立分布資料庫,這樣可以轉移查詢和大訪問量對資料庫帶來壓力;
圖片可以考慮單獨放在一台伺服器上;1.三層架構
2.使用手寫sql,手寫entity(生成也可),緩存反射綁定(不是緩存數據哦,緩存映射關系),要考慮網站的長期發展還是手寫吧 靈活 性能也好
3.沒有這種問題,商業驅動的,純購物就好了,千萬別搞什麼圈子,wiki
4.純.net的mvc不建議,webform不搞viewstate,不搞服務端控制項(除repeater)再加點mvc的思想已足夠用了
5.不需要緩存數據(除搜索產品部分),要考慮多台伺服器的程序快速部署,config文件會很多,config要序列化緩存
6.當然是先生成好了,參照jd吧,按業務每張圖片對應幾個不同大小的圖
7.據經驗,電子商務網站僅靠中英雙語來達到多語言是不靠譜的(文化 用戶習慣不是簡單的語言切換),如果想真正運營英語的就要重新開發一個版本
8.不搞模式
9.負載均衡(web,db)+ssb非同步處理數據
10.你是業務類型的日誌還是異常日誌? 前台訂單流程上異常日誌不需要了,找個工具錄個腳本不停的跑 保證隨時發現問題發郵件就可以了
11.找第三方搜索組件 類似endeca的
12.負載均衡挺簡單的,初期靠軟體就可以,一切圖片找第三方放cdn,前台網站用到ajax的地方很少,如果用的話jquery 1,一個電子商務網站用戶99.5%的行為時Find
2、對於商品檢索部分,能不用資料庫就不用資料庫(網上切詞等相關的開源平台很多)
3、分布式緩存(Memcached 、Volecity),個人測試volecity 3還是不錯的
4、系統設計時必須要考慮可運營。從這個角度去設計系統
5、對於電子商務網站改動很頻繁,必須考慮架構設計如何適應頻繁的版本更新
6、必須設計一個好的單點登錄系統。
7、建議能不用sqlserver就不用它。
8、對於大型電子商務網站來說,系統的I/O是起決定因素而不是CPU和內存。1.項目劃分是否會有問題,圖中分別是 實體層,數據訪問介面層,數據訪問層,業務邏輯介面層,業務邏輯,網站A,B,C
項目劃分其實不重要,重要的的是你在寫代碼的時候是否能把代碼合理的分到對應的項目里。
2.數據訪問層是要開發效率(NBear,Linq,Nh等),還是訪問效率(直接使用sql等)?是否可以先使用開發效率高的,等日後訪問量大了,再重寫並替換數據訪問層?
開發效率優先,訪問量大了以後,我相信是有錢投到硬體上的,在你程序寫的不是很爛的情況下,升級硬體遠比優化程序節省成本。
3.網站被切割成了多個子網站,有一些控制項(如header,footer)是要共享的,如何跨網站項目共享這些控制項呢?
那就做成自定義控制項啦。
4.ms的mvc 1.0也出來不少時間了,是否已經夠成熟運用到項目中?或者是網站後台使用webform的,前台使用mvc?
推薦使用使用webform的,前台使用mvc,對於前台來說使用mvc能更好的提升性能,更方便的更換頁面表現形式。後台界面相對穩定,用webform可以提高開發效率。
5.網站數據的緩存是自己開發一個hashtable什麼的來維護呢,還是使用Memcached ?
初期建議用hashtable,因為簡單,將來升級到Memcached 。
6.縮略圖的處理,我看有的網站是在上傳圖片的時候直接生成,有的是在httpmodle里處理,訪問的時候生成.
直接生成縮略圖的好處是節約性能。httpmodle相反,每次瀏覽圖片的時候都會生成新的圖片,伺服器壓力大,建議直接生成。
7.同一個網站的多語言該如何處理是好,使用配置文件然後cookie或url來判別?
多語言建議使用asp.net自帶的資源文件的方式實現,當前語言保存在cookie裡面。
8.電子商務網站最多的就是 商品的打折方式和積分的贈送了,這里要怎麼設計才好(工廠模式)?
規則引擎
9.如果同一時間並發大量訂單的話,如果確保一個訂單的有效提交呢?
使用MQ隊列
10.日誌方面,log4net?
log4net只能記錄程序運行日誌,主要目的是用來調試程序的,系統業務操作日誌還你是得自己建一個表來保存。
11.電子商務的全文檢索,這也是個頭疼的問題
lucene,微軟索引服務,sqlserver全文檢索,方案很多的。
12.負載均衡方面,有什麼好的文章推薦碼?
可以看windows 2003 集群方面的文章 1.項目劃分是否會有問題,圖中分別是 實體層,數據訪問介面層,數據訪問層,業務邏輯介面層,業務邏輯,網站A,B,C
目前我也是這樣分的,不過當數據表結構有修改時,會帶動其它層的聯級修改,非常不方便,所以開發之前最好將資料庫設計地完善一點。另外,當網站分成多個以後,其它項目生成的DLL文件要部署到每個網站的bin文件夾里,更新一次都要重新部署,這也是個挺煩人的事,當然可以將DLL部署到GAC里來解決這個問題,不過這樣的話本地調試起來就不太方便了,因為項目一有改動,就要將生成的DLL重新拷貝到GAC里才能看到效果。
2.數據訪問層是要開發效率(NBear,Linq,Nh等),還是訪問效率(直接使用sql等)?是否可以先使用開發效率高的,等日後訪問量大了,再重寫並替換數據訪問層?
這個我也在考慮。目前我還沒有採用ORM框架,都是在DAL里直接訪問DB的。
3.網站被切割成了多個子網站,有一些控制項(如header,footer)是要共享的,如何跨網站項目共享這些控制項呢?
自定義控制項。
4.ms的mvc 1.0也出來不少時間了,是否已經夠成熟運用到項目中?或者是網站後台使用webform的,前台使用mvc?
正在學習這一塊。
5.網站數據的緩存是自己開發一個hashtable什麼的來維護呢,還是使用Memcached ?
現在我用的比較多的是.net自帶的數據緩存。
6.縮略圖的處理,我看有的網站是在上傳圖片的時候直接生成,有的是在httpmodle里處理,訪問的時候生成.
直接生成好,快一點。
7.同一個網站的多語言該如何處理是好,使用配置文件然後cookie或url來判別?
我沒涉及到這一塊,不過我覺得資源文件應該就是用來處理這個問題的。
8.電子商務網站最多的就是 商品的打折方式和積分的贈送了,這里要怎麼設計才好(工廠模式)?
這些都放在邏輯層好了。
9.如果同一時間並發大量訂單的話,如果確保一個訂單的有效提交呢?
MSMQ
10.日誌方面,log4net?
目前我是自已寫代碼存在庫里的。
11.電子商務的全文檢索,這也是個頭疼的問題
用lucene.net分詞建索引,再直接從索引庫里搜索,又快又准。
12.負載均衡方面,有什麼好的文章推薦碼?
不清楚了。 這樣的設計要達到新蛋的效果肯定不可能的,新蛋少說幾百台伺服器,不同資料庫之間的發布訂閱鏈路都有幾千條。有復雜的緩存,負載均衡機制。新蛋所有的通訊都是基於WCF的。另外對於這么大型的網站來說,資料庫一刻都不停止,所以讀寫分離也很重要,因為你也不可能讓資料庫停下來進行備份。總歸要做到新蛋這樣的大型電子商務網站,靠你上面畫的這點好像遠遠不夠。
不過關於公共的header,footer,我不建議做成自定義控制項,這個維護起來不方便,稍有變動就要發布dll,麻煩的。
如果你的header和footer不是很大的話,建議採用js+css的方式。然後加上壓縮和cdn緩存,應該效率上能接受。

4、從0開始逐步邊開發邊運作一個大型網站,該採用怎樣的技術架構(或者技術路線)?

這樣的跨度肯定會經歷推倒重來的過程,否則一開始就設計一個能擴展到很大規模的網站架構會在初期造成很大的資金和人力負擔。讓開發的負責人給你計算了開發成本,維護成本和開發出來的效果以後你再決定當前階段採用哪一種。顯然一分錢一分貨。

越簡單的時候PHP越有優勢,越復雜JAVA越有優勢,JSP只是JAVA WEB開發中的一項技術,到最後都不一定需要使用。為了不浪費人手,如果你確定將來要往大網站發展一開始就該採用JAVA或.NET,這樣在重新開發時至少能充分利用之前的人員經驗。

該採用怎樣的技術架構不是三兩句話能說清楚的,具體問題具體分析。

再簡單也不建議使用JSP+SERVLET+JAVABEAN
SSH之類的架構本來就是為了簡化開發工作量,提高代碼質量和可維護性而生的。除非追求極致變態的性能的人才會去用servlet,而且實際體驗可能根本幾乎沒差別,只要不把SSH用得太爛。架構復雜了,也不過是在這些主流技術上改改,封裝封裝,自然是使用同一語言比PHP轉JAVA容易太多了。

5、大型網站技術架構 核心原理與案例分析 有用么

編輯推薦
編輯
本書作者是阿里巴巴網站構建的親歷者,擁有核心技術部門的一線工作經驗,直接體驗了大型網站構建與發展過程中的種種生與死,蛻與變,見證了一個網站架構從幼稚走向成熟穩定的歷程。
沒有晦澀難懂的術語,沒有詰屈聱牙的文句,沒有故弄玄虛的觀點……
明明白白的語句,清清楚楚的文法,干凈利落的建議——讓讀者直接體會網站架構的緊要處,不容馬虎的關鍵點——這恰好是一個優秀的網站架構所必備的要素。
如果說「水不在深,有龍則靈」,那麼對於想了解網站架構的讀者而言,這本書恰好是「書不在多,有它則行!」
還猶豫什麼呢?

內容簡介
編輯
本書通過梳理大型網站技術發展歷程,剖析大型網站技術架構模式,深入講述大型互聯網架構設計的核心原理,並通過一組典型網站技術架構設計案例,為讀者呈現一幅包括技術選型、架構設計、性能優化、Web 安全、系統發布、運維監控等在內的大型網站開發全景視圖。
本書不僅適用於指導網站工程師、架構師進行網站技術架構設計,也可用於指導產品經理、項目經理、測試運維人員等了解網站技術架構的基礎概念;還可供包括企業系統開發人員在內的各類軟體開發從業人員借鑒,了解大型網站的解決方案和開發理念。

6、如何評價一個大型網站系統架構設計的好壞?

說說我的看法,對不對的供參考吧!
首先,網站也好、其它信息化系統也好,其系統架構設計都不是拍腦袋來的,都是依據一個出發點設計而來,究其所以,就是需求。而這個需求又是從最初的建設初衷來的,也就是說,按說最後做出來的東西應該滿足建設初衷。
所以,簡言之,有什麼樣的需求就有什麼樣的架構設計。因此,要評價架構設計的好壞,就拿需求來衡量。能滿足需求的架構設計,就是對的。不能滿足,或者不能全面滿足的,如果沒有項目建設上的延期認可或者同意擱置的決定,就是不應該的。

注意:我說的需求,並不僅是針對功能范疇的;也包括性能、可用性、安全等方面。所以說需求是全面的內容。

7、電子商務系統總體結構設計的主要內容與方法是什麼

電子商務系統的總體結構設計是在系統體系結構的基礎上,針對企業電子商務的目標,界定系統的外部邊界和介面,刻畫系統的內部成及其相互關系,明確目標系統的各個組成部分、各個組成部分的作用及其相互關系。
系統總體結構設計包括如下內容:
1.確定系統的外部介面
通過分析,將電子商務系統與其外部環境區分開來,從而使總體設計有一個明確的范圍。系統與其外部環境的介麵包括以下方面:
(1)與企業合作夥伴之間的介面;
(2)與企業內部既有信息系統的介面;
(3)與交易相關的公共信息基礎設施之間的介面;
(4)其他介面,如企業與政府或其他機構之間的介面。
2.確定系統的組成結構
系統組成結構主要說明目標系統內部的組成部分,以及系統內部與外部環境的相互關系。

方法:
隨著Internet技術的發展,人們的日常生活已經離不開網路。未來社會人們的生活和工作將越來越依賴於數字技術的發展,越來越數字化、網路化、電子化、虛擬化。電子商務也隨著網路的發展日益和人們的生活貼近。本設計嘗試用ASP在網路上架構一個動態的電子商務網站,以使每一位顧客不用出門在家裡就能夠通過上網來輕松購物。在本設計中,我主要完成了後台功能的實現,實現了登錄功能,圖書管理,圖書分類管理,訂單管理,用戶管理等功能。
本文中所做的主要工作如下:
(1)簡單介紹了電子商務,分析了電子商務的現狀;
(2)介紹了IIS+ASP系統的一般原理;
(3)闡述整個系統的系統結構及工作原理;分析了系統實現中的特殊性、難點和重點;
(4)分析並解決實現中的若干技術問題;

附:

方案設計主要依靠設計者的經驗,作出技術和結構的選擇,並以有組織的文檔反映,作為與客戶交流論證方案,交付系統開發人員實施的依據,方案設計的基礎是業務環境說明書。業務環境說明書重新組織系統需求,給出解決方案的業務運作方式。在系統需求相對簡單時不一定需要,如果系統需求較為復雜時,以文字和圖表的方式系統地說明業務環境可以使系統需求更加清楚,業務環境說明書可以採用三種文檔結構。
* 業務流程圖:業務流程圖描述企業的業務在新系統中如何運作,說明新系統的業務運作模式如何解決客戶的要求,指出客戶的業務流程因為新系統的應用而作出那些更改。業務流程圖是一種直觀的工具,向客戶解釋新系統的作用,徵求使用者的配合與支持,能提高新系統的實際效能。
* 操作規程說明:相對於業務流程圖這種較高層概括的文檔,普通用戶可能更需要一份詳細的操作規程說明,以便更好地理解系統的功能與使用。操作規程說明以易被最終用戶理解的詞語描述,避免使用過分專業的詞語。操作規程說明仍屬於高層設計文檔,不是最終的操作步驟說明。操作規程說明規定了系統活動的框架,
* 處理流程圖 : 細化操作規程中描述的活動,由事件和處理流組成。事件是活動開始的條件,處理是活動中的具體工作。處理流程圖的描述層次接近詳細設計。以客戶在網上購貨為例,最後一步是確認付款,操作規程說明只需簡單地說明:「客戶檢查付款額後確認」,處理流程圖的說明比較詳細,激發活動的事件是客戶按下「付額」按鈕,處理是付款總額從資料庫中統計出來,顯示在瀏覽器上,最後由客戶按「確認」按鈕確認。

當前普遍採用對象技術描述復雜的應用結構,電子商務系統一般用Java,EJB,CORBA等對象技術實現,在系統設計階段,編制業務環境書時採用面向對象分析和設計方法可以提高實施階段的效率。業務環境說明書中的設計文檔完成後,召開第二次項目會議,在會上以圖表的形式向客戶和項目開發人員介紹系統設計的概貌。著重與客戶討論兩個問題,檢查系統設計是否滿足客戶需求:

系統設計在多大程度上解決了用戶的需求?是否准確地實現了客戶的期望,既沒有過分簡單化,也沒有過分復雜化。

系統設計的功能范圍是否包含了用戶提出的所有需求?
應用開發人員參加項目會議,可以更好地了解客戶的業務環境與方案設計的總體結構,與客戶和系統設計者直接交談,減少溝通的誤差,提高效率。

IBM為電子商務系統定義了一套完整的電子商務應用框架,基於三層次體系結構集成企業核心系統與互聯網服務,多層次結構使企業內部應用系統無需作重大更改,通過與互聯網伺服器的連結就可以在互聯網上提供服務,實現電子商務系統的目標。
基於電子商務應用框架的電子商務系統體系結構共有八個主要部分。直接支持應用程序運行的模塊有六個:客戶端、網路連接、互聯網伺服器、應用邏輯、中間連接件、核心數據與應用,其餘兩個模塊安全性和系統管理與這六個模塊都有關聯,系統設計者可相對獨立地設計安全性體系和系統管理體系,在應用程序運行支持模塊的實現中加入相應的技術與處理。安全性和系統管理的效率是系統的整體性效果,應用系統運行的每一個環節都能影響系統總體的安全性和可管理性。

與大型電商網站架構詳細設計相關的知識