大型網站架構系列:電商網站架構案例(3)

來源:互聯網
上載者:User

標籤:主題   進階   使用者   取消   多個   效能   代理   功能   負載平衡   

本文章是電商網站架構案例的第三篇,主要介紹資料庫叢集,讀寫分離,分庫分表,服務化,訊息佇列的使用,以及本電商案例的架構總結。

6.5資料庫叢集(讀寫分離,分庫分表)

大型網站需要儲存海量的資料,為達到海量資料存放區,高可用,高效能一般採用冗餘的方式進行系統設計。一般有兩種方式讀寫分離和分庫分表。

讀寫分離:一般解決讀比例遠大於寫比例的情境,可採用一主一備,一主多備或多主多備方式。

本案例在業務拆分的基礎上,結合分庫分表和讀寫分離。如:

(1)       業務拆分後:每個子系統需要單獨的庫;

(2)       如果單獨的庫太大,可以根據業務特性,進行再次分庫,比如商品分類庫,產品庫;

(3)       分庫後,如果表中有資料量很大的,則進行分表,一般可以按照Id,時間等進行分表;(進階的用法是一致性Hash)

(4)       在分庫,分表的基礎上,進行讀寫分離;

 

相關中介軟體可參考Cobar(阿里,目前已不在維護),TDDL(阿里),Atlas(奇虎360),MyCat(在Cobar基礎上,國內很多牛人,號稱國內第一開源項目)。

分庫分表後序列的問題,JOIN,事務的問題,會在分庫分表主題分享中,介紹。

6.6服務化

         將多個子系統公用的功能/模組,進行抽取,作為公用服務使用。比如本案例的會員子系統就可以抽取為公用的服務。

 

6.7訊息佇列

         訊息佇列可以解決子系統/模組之間的耦合,實現非同步,高可用,高效能的系統。是分布式系統的標準配置。本案例中,訊息佇列主要應用在購物,配送環節。

(1)       使用者下單後,寫入訊息佇列,後直接返回用戶端;

(2)       庫存子系統:讀取訊息佇列資訊,完成減庫存;

(3)       配送子系統:讀取訊息佇列資訊,進行配送;

目前使用較多的MQ有Active MQ,Rabbit MQ,Zero MQ,MS MQ等,需要根據具體的業務情境進行選擇。建議可以研究下Rabbit MQ。

6.8其他架構(技術)

除了以上介紹的業務拆分,應用叢集,多級緩衝,單點登入,資料庫叢集,服務化,訊息佇列外。還有CDN,反向 Proxy,Distributed File System,大資料處理等系統。

此處不詳細介紹,大家可以問度娘/Google,有機會的話也可以分享給大家。

七、架構總結

 

以上是本次分享的架構總結,其中細節可參考前面分享的內容。其中還有很多可以最佳化和細化的地方,因為是案例分享,主要針對重要部分做了介紹,工作中需要大家根據具體的業務情境進行架構設計。 

以上是電商網站架構案例的分享一共有三篇,從電商網站的需求,到單機架構,逐步演變為常用的,可供參考的分布式架構的原型。除具備功能需求外,還具備一定的高效能,高可用,可伸縮,可擴充等非功能品質需求(架構目標)。

關於負載平衡,業務拆分,叢集架構,讀寫分離,分庫分表,服務化,訊息佇列等常用技術和架構實現,本部落格將會推出系列文章,進行介紹。歡迎小夥伴們圍觀。

參考:

http://www.cnblogs.com/itfly8/p/5009005.html

大型網站架構系列:電商網站架構案例(3)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.