電商系統(tǒng)與銀行系統(tǒng)對比分析0.3_第1頁
電商系統(tǒng)與銀行系統(tǒng)對比分析0.3_第2頁
電商系統(tǒng)與銀行系統(tǒng)對比分析0.3_第3頁
電商系統(tǒng)與銀行系統(tǒng)對比分析0.3_第4頁
電商系統(tǒng)與銀行系統(tǒng)對比分析0.3_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、BOC and IBM Confidential1近年來,國內(nèi)電商業(yè)務的快速發(fā)展,給電商及銀行的核心應用系統(tǒng)帶來了巨大的處理壓力 2012.11.11 夜間00:00以后,最高TPS達239,較平常日增長64%。全天交易量達3600萬 從夜間00:35以后,聯(lián)機交易響應時間明顯增長,前端支付寶相關交易出現(xiàn)超時IBM GBS第1分鐘超過1000萬人萬人涌入天貓一分鐘內(nèi)支付寶交易成功筆數(shù)19.219.2萬筆10分鐘,支付寶總銷售額2億億5000萬萬08時16分,支付寶總銷售額5050億億13時38分,支付寶總銷售額100億億n 支付寶總銷售額 191億億n 2.2.億億獨立用戶訪問n 支付寶實現(xiàn)成

2、功交易筆數(shù)1 億零億零580萬萬筆n 付款峰值20.5萬/分鐘2012.11.11核心系統(tǒng)交易量及響應時間統(tǒng)計單位:秒淘寶網(wǎng)2012 11.11促銷業(yè)務統(tǒng)計BOC and IBM Confidential2為支持這種業(yè)務量的挑戰(zhàn),電商及類似的網(wǎng)站系統(tǒng)持續(xù)進行了大量的系統(tǒng)架構優(yōu)化IBM GBS1995. eBay成立,時采用CGI編寫,數(shù)據(jù)庫采用的是GDBM,最多只能支撐5萬件在線商品1997. 1997. FreeBSD遷移到Windows NT,數(shù)據(jù)庫從GDBM遷移為Oracle,前端改造為Cluster,采用Resonate作為負載均衡,后端的Oracle機器升級為Sun E1000小型機

3、,同年給數(shù)據(jù)庫增加了一臺機器作為備庫,提升可用性1999.1999.達到了瓶頸(已經(jīng)不能再加CPU和內(nèi)存了),于是開始將數(shù)據(jù)庫按業(yè)務拆分為多個庫,隨后將數(shù)據(jù)表進行了水平拆分,例如按類目存儲商品2002. 2002. 將整個網(wǎng)站遷移為用Java構建,在這個階段,做了DAL框架來屏蔽數(shù)據(jù)庫分庫分表帶來的影響,同時還設計了一個開發(fā)框架以供開發(fā)人員更好地上手進行功能開發(fā)。2003. Taobao成立,直接購買了一個商業(yè)的phpAuction的軟件,在此基礎上改造產(chǎn)生了淘寶。2004. 將系統(tǒng)由PHP遷移到Java,MySQL遷移為Oracle(小型機、高端存儲設備),應用服務器采用了WebLogic2

4、005. . 用JBoss替代了WebLogic,對數(shù)據(jù)庫進行了分庫,基于BDB做了分布式緩存,自行開發(fā)了分布式文件系統(tǒng)TFS以支持小文件的存儲,并建設了自己的CDN2007. . 對應用系統(tǒng)進行垂直拆分,拆分后的系統(tǒng)都以Service的方式對外提供功能,對數(shù)據(jù)采用了垂直和水平拆分。隨后開始將數(shù)據(jù)逐漸從Oracle遷移到MySQL,同時開始嘗試新型的數(shù)據(jù)存儲方案(如采用HBase)1997. Google成立,網(wǎng)頁內(nèi)容及索引數(shù)據(jù)分別分散到多臺Index與Doc服務器上。2001. 對Index格式進行修改,并將所有Index放入內(nèi)存;通過并行處理+sharding 來保證在降低對硬件要求的同時

5、提高響應速度;通過GFS(Google文件系統(tǒng))來存儲大量數(shù)據(jù)并支持高并發(fā)2004. . 再次對Index的格式進行了修改,同時通過替換MapReduce與BigTable使得海量數(shù)據(jù)的分析能夠達到在線系統(tǒng)的要求了,使得網(wǎng)站的響應速度繼續(xù)提升2007. . 研發(fā)Colossus(下一代類GFS文件系統(tǒng))、Spanner(下一代類BigTable海量存儲和計算架構)、實時搜索(基于Colossus實現(xiàn)),主要都是為了提升搜索的實時性以及存儲更多數(shù)據(jù)??蓴U展性可擴展性可用性可用性高性能高性能可維護性可維護性低成本低成本注:為方便進行針對性比較,下文中若無特別說明,則電商指注:為方便進行針對性比較,

6、下文中若無特別說明,則電商指“淘寶網(wǎng)淘寶網(wǎng)”BOC and IBM Confidential典型電商架構分析 電電商典型淘寶的架構呈現(xiàn)出以下三個主要特點商典型淘寶的架構呈現(xiàn)出以下三個主要特點 動態(tài)、靜態(tài)內(nèi)容分離:出于降低帶寬壓力、提升客戶體驗的目的,淘寶將動態(tài)和靜態(tài)內(nèi)容作了切分并將消耗大量帶寬的靜態(tài)內(nèi)容特別是圖片的下載投放到CDN 后端應用架構SOA化:淘寶后端應用完全采用了面向服務的思想進行設計,子系統(tǒng)之間通過完整的服務定義以及高性能的自開發(fā)遠程服務交互框架進行分布式調(diào)用 充分的數(shù)據(jù)分布式化:為了面對大數(shù)據(jù)量的處理,在服務化的基礎上,淘寶的架構進一步將數(shù)據(jù)采用分布式存儲、緩存的方式在系統(tǒng)內(nèi)部

7、進行了分布以擁有更好的擴展性3IBM GBS淘寶淘寶客戶群客戶群網(wǎng)絡網(wǎng)絡傳輸傳輸前端前端應用應用后端后端應用應用DNSDNSABTN網(wǎng)絡網(wǎng)絡CDN系統(tǒng)系統(tǒng)靜態(tài)頁面圖片站點緩存站點緩存店鋪商城互動社區(qū)無線商品淘淘寶前端應用寶前端應用靜態(tài)內(nèi)容靜態(tài)內(nèi)容動動態(tài)內(nèi)容態(tài)內(nèi)容核心業(yè)務服務核心業(yè)務服務數(shù)據(jù)數(shù)據(jù)共享服務共享服務數(shù)據(jù)庫數(shù)據(jù)庫服務服務搜索搜索服務服務用戶中心商品中心店鋪中心交易中心促銷中心TFS分布式文件存儲DB管理中心分布式緩存MySQLOracle大C搜索實時搜索SPU搜索服務服務調(diào)用調(diào)用TDDL/讀寫分離讀寫分離分發(fā)分發(fā)索引索引搜索搜索BOC and IBM Confidential4與銀行相

8、比,電商的交易具有一致性要求較低,可用性要求均等,吞吐量較大的特點IBM GBS電商基本交易模式網(wǎng)頁瀏覽提交訂單訂單支付 電電商交易模式的特點分析商交易模式的特點分析 一致一致性:性:電商交易模式中,商品信息中的庫存數(shù)量、訂單提交后是否馬上被處理等,都不一定需要實時反映系統(tǒng)的最新情況,除了線上支付部分反映現(xiàn)金、積分等即時增減的項目,電商對于時效性的要求較銀行低 可用可用性:性:電商采用瀏覽器作為基本的訪問方式,成千上萬的用戶同時進行訪問,基本的三種交易模式組成了關鍵的購物流程,流程中任何一個節(jié)點的失效將導致訂單流失,因此具有極高的可用性要求 高吞吐量高吞吐量: :電商的網(wǎng)頁點擊率在平時就高達2

9、5億次每日,其中包含大量的圖片等多媒體數(shù)據(jù)的訪問,對于吞吐量有極高的要求 電商用戶通過瀏覽如淘寶包含的海量商品進行商品選擇。在瀏覽過程中,大量的數(shù)據(jù)被查詢及展現(xiàn)。用戶還會經(jīng)常使用搜索功能,通過模糊搜索得到經(jīng)過排序的搜索結果。這樣的搜索通常需要使用到分詞、搜索意圖分析等搜索引擎技術 當用戶瀏覽完商品并將需要購買的商品從“購物車”中取出結算,系統(tǒng)為用戶生成訂單,用戶通過提交訂單完成一次購買行為。訂單提交過程中,電商系統(tǒng)需要進行查詢客戶信息、計算積分、鎖定庫存等一系列操作 當用戶選擇在線支付訂單,那么電商系統(tǒng)通過將用戶引導到特定的支付界面或者銀行的支付界面,通過銀行等金融機構的接口獲取貨款,在記錄自

10、身內(nèi)部賬務的同時,完成對用戶訂單狀態(tài)以及用戶信息如積分信息等的更新BOC and IBM Confidential5針對電商系統(tǒng)架構及交易的特點,電商主要從基礎設施、數(shù)據(jù)庫與應用設計等方面對其系統(tǒng)架構進行持續(xù)優(yōu)化IBM GBSn數(shù)據(jù)庫:數(shù)據(jù)同步機制n數(shù)據(jù)庫:數(shù)據(jù)路由DBRouten應用設計:分布式交易處理模式TCC一致性高吞吐量可用性n基礎設施:多層級分布式部署n數(shù)據(jù)庫及應用設計:讀寫分離n數(shù)據(jù)庫及應用設計:緩存機制n基礎設施:多層級分布計部署n基礎設施及數(shù)據(jù)庫:自主研發(fā)的文件系統(tǒng)及數(shù)據(jù)庫系統(tǒng)n應用設計:異步處理機制BOC and IBM Confidential6基礎設施 完全分布式架構設計

11、,去中心化IBM GBS電商系統(tǒng)電商系統(tǒng) 通過完全分布式架構設計,突破了單臺主機或數(shù)據(jù)庫計算能力的瓶頸。通過增加/減少服務器的個數(shù),可支持海量交易的處理,并保證了系統(tǒng)處理能力的高擴展性銀行系統(tǒng)銀行系統(tǒng)Taobao完全分布式架構設計體現(xiàn)在WEB Server, Application Server, Database Server等不同層級均采用分布式部署,并在應用上設計分布式算法(Fourinone)以支持海量數(shù)據(jù)的分布式計算銀行系統(tǒng)相對較為封閉,僅銀行內(nèi)部主機參與存儲計算。外圍系統(tǒng)的訪問與通常也僅限于本系統(tǒng)內(nèi)部的安全網(wǎng)絡BOC and IBM Confidential7基礎設施 采用自主研發(fā)

12、的文件系統(tǒng)以提高性能IBM GBS電商系統(tǒng)電商系統(tǒng) TAOBAO存儲數(shù)據(jù)的一個突出特點是單個文件尺寸較小,通常不大于1MB,但是數(shù)量巨大,傳統(tǒng)的文件系統(tǒng)或者網(wǎng)絡存儲設備很難解決類似的問題 銀行系統(tǒng)為保證應用開發(fā)的便利性,通常使用數(shù)據(jù)庫來進行數(shù)據(jù)存儲。部份情況也只使用操作系統(tǒng)的文件系統(tǒng),不會根據(jù)自身的數(shù)據(jù)要求對文件系統(tǒng)定制 銀行系統(tǒng)可借鑒電商的做法,對一些非結構化的數(shù)據(jù),使用定制的文件系統(tǒng)來方便存儲,并加快處理速度銀行系統(tǒng)銀行系統(tǒng) 淘寶自主研發(fā)TFS(TAOBAO分布式文件系統(tǒng)),用于存儲淘寶網(wǎng)主站的數(shù)據(jù),例如商品圖片、商品描述、交易快照、社區(qū)圖片等。 TFS通過扁平化的數(shù)據(jù)組織結構,拋棄了傳統(tǒng)

13、文件系統(tǒng)的目錄結構 在塊設備基礎上建立自有的文件系統(tǒng),減少EXT3等文件系統(tǒng)數(shù)據(jù)碎片帶來的性能損耗 盡量縮減元數(shù)據(jù)大小,將元數(shù)據(jù)全部加載入內(nèi)存,提升訪問速度 基本通過關系型數(shù)據(jù)庫(RDBMS)來進行數(shù)據(jù)的存儲 根據(jù)操作系統(tǒng)的不同,聯(lián)機交易會使用VSAM或UNIX文件來進行少量數(shù)據(jù)的讀取(如參數(shù)的讀?。?在批處理中,為提高處理效率,部份作業(yè)會將數(shù)據(jù)從數(shù)據(jù)庫導成文件,再對文件進行操作處理BOC and IBM Confidential8數(shù)據(jù)庫 采用讀寫分離提高數(shù)據(jù)庫處理能力IBM GBS讀寫分離最根本的思想是把對數(shù)據(jù)庫讀和寫的操作分開對應不同的數(shù)據(jù)庫服務器,這樣能有效地減輕數(shù)據(jù)庫壓力,也能減輕IO

14、壓力: 將應用程序中對數(shù)據(jù)庫的寫操作指向主服務器,而將讀操作指向從服務器。 當主數(shù)據(jù)庫進行寫操作時,數(shù)據(jù)要同步到從的數(shù)據(jù)庫,這樣才能有效保證數(shù)據(jù)庫完整性 MySQL有自己的同步數(shù)據(jù)技術。它是通過二進制日志來復制數(shù)據(jù)。從服務器定時向主服務器請求最新日志,主服務器異步將二進制日志輸送給從服務器。 應用程序與多臺數(shù)據(jù)庫之間,可以通過MySQL Proxy反向代理解耦。應用程序只需要跟MySQL Proxy 通信即可,而讀寫分離的工作都由MySQL Proxy 來完成,與此同時,MySQL Proxy 還對多個從服務器實現(xiàn)負載均衡以及可用性檢測。 通過MySQL Proxy將讀寫分離操作從應用程序中進

15、行隔離BOC and IBM Confidential9數(shù)據(jù)庫 讀寫分離方式比較IBM GBS電商系統(tǒng)電商系統(tǒng) 電商系統(tǒng)通過對數(shù)據(jù)庫的讀寫分離技術,將客戶交易和海量查詢進行隔離,從而提高性能,但電商系統(tǒng)對查詢結果無法保證實時性(數(shù)據(jù)同步存在一定時差) 銀行系統(tǒng)不對交易行為進行區(qū)分,全部使用統(tǒng)一的數(shù)據(jù)庫,雖能保證查詢結果的準確性,但存在競爭數(shù)據(jù)庫資源的情況,易造成性能瓶頸 銀行可借鑒電商的做法,對業(yè)務進行梳理,對查詢實時性要求較低的業(yè)務可采用讀寫分離的方式來提高交易處理能力銀行系統(tǒng)銀行系統(tǒng) 建立主、從數(shù)據(jù)庫,主數(shù)據(jù)庫用于寫操作,從數(shù)據(jù)庫只做讀取操作 主庫的數(shù)據(jù)在更新后會同步到從庫中 復制是異步的

16、,從服務器定時向主數(shù)據(jù)庫服務器請求最新日志,主服務器只需通過一個IO線來讀取本地二進制日志,并發(fā)送給從服務器。復制過程對主服務器的影響有限 只使用一個主數(shù)據(jù)庫服務 數(shù)據(jù)的讀寫在同一數(shù)據(jù)庫的同一表上進行,相互存在競爭。 讀寫混搭,一次交易過程中不會將讀、寫處理分散到不同的服務器中分別進行處理。BOC and IBM Confidential10數(shù)據(jù)庫 數(shù)據(jù)同步IBM GBS 在實現(xiàn)數(shù)據(jù)庫讀寫分離后,需考慮主數(shù)據(jù)庫數(shù)據(jù)更新后,如何與從數(shù)據(jù)庫同步的問題。Taobao主要用以下三種工具來實現(xiàn)數(shù)據(jù)同步: Dbsync:異構數(shù)據(jù)庫之間同步的工具。用于同步服務庫數(shù)據(jù)到HDFS的產(chǎn)品,通過分析數(shù)據(jù)庫服務器的l

17、og文件來提取相應的數(shù)據(jù)庫動作,進而達到數(shù)據(jù)庫到HADOOP的數(shù)據(jù)同步,供相關部門提取增量數(shù)據(jù) Timetunnel:實時數(shù)據(jù)傳輸平臺。主要功能就是實時完成海量數(shù)據(jù)的交換,因此TimeTunnel的業(yè)務邏輯主要也就有兩個:一個是發(fā)布數(shù)據(jù),將數(shù)據(jù)發(fā)送到TimeTunnel;一個是訂閱數(shù)據(jù),從TimeTunnel讀取自己關心的數(shù)據(jù) DataX:一個在異構的數(shù)據(jù)庫/文件系統(tǒng)之間高速交換數(shù)據(jù)的工具,實現(xiàn)了在任意的數(shù)據(jù)處理系統(tǒng)(RDBMS/Hdfs/Local filesystem)之間的數(shù)據(jù)交換,由淘寶數(shù)據(jù)平臺部門完成。 淘寶針對全量與增量數(shù)據(jù),分別采用了不同的實時/非實時同步工具 隨著銀行業(yè)務的發(fā)展

18、,系統(tǒng)中的數(shù)據(jù)增量與存量也越來越大。對一些各系統(tǒng)需用到的公用信息(如客戶信息),其數(shù)據(jù)的同步需更好的規(guī)劃BOC and IBM Confidential數(shù)據(jù)庫 數(shù)據(jù)分析與展示11IBM GBS業(yè)務理解數(shù)據(jù)理解概念設計交互設計應用開發(fā)用 戶展示確定指標 數(shù)據(jù)豐富是電商的最大優(yōu)勢之一。通過對海量用戶日志及交易數(shù)據(jù)的分析,可判斷用戶的消費偏好及商品的買家地域、年齡、信用等級等各項指標 相對電商,銀行具有用戶的第一手真實交易信息。在當前利率市場化的背景下,如何快速、準確的對海量數(shù)據(jù)進行分析,以更好的進行業(yè)務營銷及客戶關系定價,是銀行面臨的重點課題之一BOC and IBM Confidential12

19、數(shù)據(jù)庫 通過數(shù)據(jù)庫擴展來支持業(yè)務量的增長IBM GBS080709集中式集中式垂直拆分垂直拆分水平水平拆分拆分 用戶數(shù)據(jù) 基礎數(shù)據(jù) 業(yè)務數(shù)據(jù) 07年,只有三個主要的數(shù)據(jù)庫,全部在小型機和存儲上面 小型機從Unix操作系統(tǒng)到硬件,穩(wěn)定性都會比PC server其實要高很多,當時的情況下淘寶用小型機是一個非常自然的選擇 08年,把三個數(shù)據(jù)庫拆成更多的數(shù)據(jù)庫,或每一個數(shù)據(jù)庫支持一個比較單一的業(yè)務 比如用戶、商品和交易,都會分成獨立的數(shù)據(jù)庫,然后放到獨立的小型計算中去(垂直拆分) 09,10年,從業(yè)界能看到很多的經(jīng)驗分享,包括eBay、亞馬遜這些國外的大公司。水平拆分是淘寶的數(shù)據(jù)庫漲到一定程度后的架構

20、選擇 水平拆分后機器、數(shù)據(jù)庫的數(shù)量都會多很多,所以從成本考慮的話,小型機和Oracle成本高,自然會選擇用PC Server 和MySQL數(shù)據(jù)庫 銀行系統(tǒng)的DB2 Data Sharing架構,基本上滿足水平拆分架構的超大容量、分散存取的壓力瓶頸 電商數(shù)據(jù)庫架構演變:07年開始淘寶的業(yè)務量保持每年自然翻一番的增長 前端業(yè)務量增長一倍,在數(shù)據(jù)庫上有可能增長是好幾倍隔離BOC and IBM Confidential13數(shù)據(jù)庫 數(shù)據(jù)庫擴展在銀行的應用IBM GBS電商系統(tǒng)電商系統(tǒng) 電商系統(tǒng)運用分表、分庫進行容量的擴展,以及數(shù)據(jù)垂直的分類,在容量方面得到很好的解決,但必須在應用層配合,發(fā)展出DBRo

21、ute來解決分割帶來的完整性議題 銀行使用主機DB2的數(shù)據(jù)容量加上分區(qū)的技術,可以滿足銀行目前的數(shù)據(jù)的擴展需求銀行系統(tǒng)銀行系統(tǒng) 拆分大字段、分表、分庫(垂直、水平分割) 使用多個幾個 Oracle 數(shù)據(jù)庫 分庫分表 用戶的信息按照 ID 來放到兩個數(shù)據(jù)庫里面(DB1/DB2) 商品的信息跟著賣家放在兩個對應的數(shù)據(jù)庫 商品類目等通用信息放在第三個庫里面(DBcommon) 優(yōu)點:擴展很大的數(shù)據(jù)容量 缺點:應用程序很麻煩,必須到兩個數(shù)據(jù)庫里面分別查詢出來對應的商品;要按時間排序必須全部查出來在應用程序里面做合并;還有分頁怎么處理?關鍵字查詢怎么處理? 解法:發(fā)展數(shù)據(jù)庫路由的框架 DBRoute 為

22、保持數(shù)據(jù)的一致性、完整性與易維護性,賬務與查詢數(shù)據(jù)基本上是只有一份,比如表中集中存放相應主體的數(shù)據(jù)(如存款賬戶主表INVM等) 主機DB2數(shù)據(jù)庫的數(shù)據(jù)容量極大,不需要因容量緣故去拆分,減少分散式數(shù)據(jù)庫的問題 DB2數(shù)據(jù)庫分區(qū)技術,相同的表信息存放在一個表的不同分區(qū),對于應用處理是透明的,不需要在應用中去考慮數(shù)值的位置 BOCS少部分表也采取分表設計,根據(jù)不同特性數(shù)值分布到分表BOC and IBM Confidential14數(shù)據(jù)庫 數(shù)據(jù)庫擴展帶來的數(shù)據(jù)庫的一致性問題(ACID vs BASE)IBM GBS電商系統(tǒng)電商系統(tǒng) 問題:ACID原則適用于互聯(lián)網(wǎng)應用嗎?可用性似乎比一致性重要些。 B

23、ASE策略與ACID不同,其基本思想就是通過犧牲強一致性,以獲得更好的可用性或可靠性銀行系統(tǒng)銀行系統(tǒng)n ACID( Atomicity 、 Consistency 、 Isolation 、 Durability )是關系型數(shù)據(jù)庫的最基本原則,遵循ACID原則強調(diào)一致性,對成本要求很高,對性能影響很大。n 銀行系統(tǒng)的業(yè)務特性,一致性比可用性更重要,必須符合ACID的要求。BASE策略: Basically Available Soft state Eventually consistentBOC and IBM Confidential銀行系統(tǒng)銀行系統(tǒng)15數(shù)據(jù)庫 采用NOSQL(Not Onl

24、y SQL 不僅僅是SQL)提高處理能力IBM GBS 可借鑒電商的做法,對不同的數(shù)據(jù)類型采取不同的存儲及處理方式電商系統(tǒng)電商系統(tǒng) 網(wǎng)站要根據(jù)用戶個性化信息來實時生成動態(tài)頁面和提供動態(tài)信息,所以基本上無法使用動態(tài)頁面靜態(tài)化技術,因此數(shù)據(jù)庫并發(fā)負載非常高,往往要達到每秒上萬次讀寫請求。 對于大型的電商網(wǎng)站,每天用戶產(chǎn)生海量的用戶動態(tài),以國外的Friendfeed為例,一個月就達到了2.5億條用戶動態(tài),對于關系數(shù)據(jù)庫來說,在一張2.5億條記錄的表里面進行SQL查詢,效率是極其低下乃至不可忍受的。 NoSQL 是非關系型數(shù)據(jù)存儲的廣義定義。它打破了長久以來關系型數(shù)據(jù)庫與ACID理論大一統(tǒng)的局面。No

25、SQL 數(shù)據(jù)存儲不需要固定的表結構,通常也不存在連接操作。在大數(shù)據(jù)存取上具備關系型數(shù)據(jù)庫無法比擬的性能優(yōu)勢。該術語在 2009 年初得到了廣泛認同銀行通常采用關系型數(shù)據(jù)庫來進行數(shù)據(jù)的存儲 由于銀行業(yè)務對于數(shù)據(jù)庫事務的一致性,以及數(shù)據(jù)庫讀寫的實時性,要求進行數(shù)據(jù)庫事務管理 目前銀行應用中,仍存在一定的大表關聯(lián)查詢,以及復雜的數(shù)據(jù)分析類型的復雜SQL報表查詢,給系統(tǒng)性能及穩(wěn)定性造成了隱患Taobao為應對數(shù)據(jù)庫高并發(fā)讀寫的需求,同時滿足海量數(shù)據(jù)的存儲,采用NOSQL數(shù)據(jù)存儲方式BOC and IBM Confidential16數(shù)據(jù)庫 可擴展關系型數(shù)據(jù)庫OceanBaseIBM GBS 數(shù)據(jù)表存儲

26、形式數(shù)據(jù)表存儲形式:OceanBase的主鍵采用二進制字符串,表數(shù)據(jù)按主鍵值范圍切分為多個Tablet塊按主鍵順序存放 存儲數(shù)據(jù)劃分:存儲數(shù)據(jù)劃分:增刪改的數(shù)據(jù)稱為動態(tài)數(shù)據(jù)(通常在內(nèi)存,也稱為內(nèi)存表),以增量方式記錄;一段時間內(nèi)相對穩(wěn)定的主體數(shù)據(jù)稱為基準數(shù)據(jù) ChunkServer:用于保存基準數(shù)據(jù)的服務器,通常是多臺,從而避免軟件硬件故障導致的服務 UpdateServer:保存動態(tài)數(shù)據(jù)的服務器 MergeServer:進行靜動態(tài)數(shù)據(jù)合并的服務器,使得用戶能夠訪問到完整的最新的數(shù)據(jù) RootServer:記錄commit log并通常采用雙機熱備 淘寶根據(jù)自身數(shù)據(jù)的特點,設計了支持海量數(shù)據(jù)的

27、分布式數(shù)據(jù)庫系統(tǒng),實現(xiàn)了數(shù)千億條記錄、數(shù)百TB數(shù)據(jù)上的跨行跨表事務 銀行在目前使用的RDBMS基礎上,可考慮根據(jù)自身數(shù)據(jù)類型的特點,設計自已的數(shù)據(jù)存儲方式BOC and IBM Confidential17應用設計 采用基于SOA的HSF服務框架(淘寶遠程服務調(diào)用框架)IBM GBS 銀行應用基本上還停留在CALL公共函數(shù) / 公共模塊階段,SOA的服務化程度較低 服務化過程本身并不容易,要求對業(yè)務、技術的高度理解及歸納。銀行業(yè)務紛繁復雜,其概念化、抽象化過程相比淘寶網(wǎng)站復雜度更高,因此,銀行應用的標準服務化是一個長期的漸進過程。但SOA服務化將給銀行應用的開發(fā)、部署模式,業(yè)務服務水平帶來極大

28、的便利調(diào)用者調(diào)用者服務提供者服務注冊查找中心異步通信服務服務提供者 淘寶HSF遵循SOA框架體系開發(fā),是淘寶網(wǎng)站成熟服務化過程中最重要的基礎性支撐框架,是其網(wǎng)站能夠承受每日巨大用戶訪問壓力仍能從容擴展的關鍵因素之一 大規(guī)模使用HSF,服務化相對成熟之后淘寶網(wǎng)站變得:前端應用高度分化,拆分成一個個功能單一的應用系統(tǒng),后端服務化接口也劃分的較細,同時針對不同業(yè)務和具體的技術實現(xiàn)做個性化優(yōu)化,增強了各個節(jié)點的健壯性,高效性 淘寶HSF給整個系統(tǒng)架構帶來的好處: 應用間的耦合降低:在服務化接口成熟的情況下,擴展新的業(yè)務需求變得方便,主要就是一個組合服務化接口的過程 開發(fā)人員可以專心關注業(yè)務,而不用考慮

29、分布式領域中的各種細節(jié)技術,例如遠程通訊、性能損耗、調(diào)用的透明化、同步/異步調(diào)用方式的實現(xiàn)等等問題 各個系統(tǒng)負責的業(yè)務更純粹,方便做針對新的性能調(diào)優(yōu)和功能改進:如容災性,并發(fā),監(jiān)控等方面的優(yōu)化。這種針對性有助于增強系統(tǒng)的高性能,高健壯BOC and IBM Confidential銀行系統(tǒng)銀行系統(tǒng)18應用設計 為保證分布式事務完整性而設計的TCC交易模式IBM GBS 為節(jié)省協(xié)議成本,通過自主開發(fā)的TCC機制實現(xiàn)跨數(shù)據(jù)庫的事務完整性和一致性處理電商系統(tǒng)電商系統(tǒng) 一個完整的業(yè)務活動由一個主業(yè)務服務與若干從業(yè)務服務組成。主業(yè)務服務負責發(fā)起并完成整個業(yè)務活動,從業(yè)務服務提供TCC型業(yè)務操作 業(yè)務活動

30、管理器控制業(yè)務活動的一致性,它登記業(yè)務活動中的操作,并在業(yè)務活動提交 時確認所有的TCC型操作的confirm操作,在業(yè)務活動取消時調(diào)用所有TCC型操作的cancel操作 Try: 嘗試執(zhí)行業(yè)務:嘗試執(zhí)行業(yè)務:完成所有業(yè)務檢查(一致性),預留必須業(yè)務資源(準隔離性) Confirm:確認執(zhí)行業(yè)務確認執(zhí)行業(yè)務:真正執(zhí)行業(yè)務,不作任何業(yè)務檢查,只使用Try階段預留的業(yè)務資源 Cancel: 取消取消執(zhí)行業(yè)務執(zhí)行業(yè)務:釋放Try階段預留的業(yè)務資源 啟動業(yè)務活動 登記業(yè)務操作 提交/回滾業(yè)務活動主業(yè)務服務主業(yè)務服務業(yè)務活動業(yè)務活動管理器管理器從從業(yè)業(yè)務務服服務務TryConfirmCancelLOG數(shù)

31、據(jù)庫數(shù)據(jù)庫數(shù)據(jù)庫數(shù)據(jù)庫數(shù)據(jù)庫數(shù)據(jù)庫數(shù)據(jù)庫數(shù)據(jù)庫對于分布式事務,通過CICS等中間件來實現(xiàn)兩階段提交(Two Phase Commit)或DTP模型 存在一定的協(xié)議成本(包括準備階段與全局事務狀態(tài)的持久成本) 準備后,提交前的故障引發(fā)一系列隔離與恢復難題BOC and IBM Confidential19應用設計 采用大量異步處理以使得系統(tǒng)具有更高的吞吐能力IBM GBS電商系統(tǒng)電商系統(tǒng) 銀行可以考慮兩方面的異步化處理 部分業(yè)務流程異步化:銀行可以根據(jù)業(yè)務流程特性,將業(yè)務流程中可以異步完成的步驟異步完成,如會計分錄的記錄等,以增加交易性能 交易處理完全異步化:對于資源消耗較大的交易(如大數(shù)據(jù)量的

32、查詢等)進行異步化處理,請求發(fā)起方提交查詢請求并在一段時間后查看查詢結果銀行系統(tǒng)銀行系統(tǒng)商品信息異步異步訂單審核庫存鎖定分布式存儲異步異步訂單庫商品瀏覽商品瀏覽訂單提交訂單提交訂單支付訂單支付電商交易路徑上盡可能地利用異步處理,來降低對系統(tǒng)的負載,但涉及到金額的操作則使用同步以保證一致性典型的銀行交易中,每一個步驟都需要同步的返回以保證一致性,如上述典型的開戶交易,存款需要開戶的生效,余額查詢需要存款的生效開戶存款余額查詢同同步步前端核心BOC and IBM Confidential20應用設計 7x24設計IBM GBS電商系統(tǒng)電商系統(tǒng) 銀行可考慮將部分參與批量的數(shù)據(jù)在數(shù)據(jù)抄寫機制下,向其

33、他庫進行復制,設置兩個復制庫,在開始批量時,通過控制時機,將主庫向其一個復制庫的抄寫轉(zhuǎn)向另一庫,那么后續(xù)的批量作業(yè)能夠在數(shù)據(jù)靜止的那個復制庫上進行,避免干擾聯(lián)機交易的運行銀行系統(tǒng)銀行系統(tǒng)實時數(shù)據(jù)實時數(shù)據(jù)準實時數(shù)據(jù)準實時數(shù)據(jù)批量數(shù)據(jù)批量數(shù)據(jù)報表報表BI電商由于不涉及到復雜的計息及計費等處理。并且電商系統(tǒng)設計上已經(jīng)做了充分的數(shù)據(jù)分布,因此批量完成相對簡單實時數(shù)據(jù)實時數(shù)據(jù)批量數(shù)據(jù)批量數(shù)據(jù) 銀行出于在多個系統(tǒng)間交換大量數(shù)據(jù)、生成統(tǒng)計報表等原因,在夜間會進行批量數(shù)據(jù)處理操作。批量往往對于具有較高的負載,同時會要求某些數(shù)據(jù)靜止,因此會影響非批量的交易,因此核心系統(tǒng)通常設計有特別的機制來使得交易服務的連續(xù)提

34、供,并且由于批量過程中對其它系統(tǒng)的數(shù)據(jù)交換會影響第二天的業(yè)務,批量往往具有很嚴格的時間要求。銀行在批量期間所處理的數(shù)據(jù)基本上都是采用數(shù)據(jù)庫技術通過UNLOAD等方式直接抓取的實時數(shù)據(jù),為了避免對還在進行交易的影響,銀行批量需要經(jīng)過復雜設計BOC and IBM Confidential21應用設計 動、靜態(tài)資源分離IBM GBS 對銀行而言,只是被查詢、不再被更新的數(shù)據(jù)可認為是靜態(tài)資源,例如交易日志、賬戶日志;尚處于持續(xù)更新的數(shù)據(jù)可認為是動態(tài)資源,例如客戶信息、賬戶信息 對銀行的動、靜態(tài)資源可考慮分別提供服務能力,避免靜態(tài)資源的服務影響到對動態(tài)資源的服務性能。例如,可考慮將超過1年的歷史賬戶交

35、易日志的查詢和日常核心業(yè)務處理區(qū)分開,單獨部署一套查詢系統(tǒng),避免占用日常核心業(yè)務處理能力BrowserWebServerWebServer靜態(tài)資源動態(tài)資源ApplicationServer 頁面中規(guī)劃好靜態(tài)、動態(tài)資源區(qū)域。靜態(tài)資源區(qū)域放置相對不變的文本、圖形圖像、視頻等信息;動態(tài)資源區(qū)域放置需和用戶隨時交互變化更新的信息 動態(tài)、靜態(tài)資源區(qū)域分別連接獨立的Web Server處理頁面請求DBServerBOC and IBM Confidential數(shù)據(jù)庫緩存應用緩存公共網(wǎng)絡緩存應用設計 - 電商如淘寶通過在交易路徑上設置多級緩存以增加性能 總體而言,電商在交易路徑上設置了四道緩存 電商外部:電

36、商外部:通過設置靜態(tài)內(nèi)容的過期時間來使用了一部分的瀏覽器緩存,同時通過使用CDN來緩存大量的靜態(tài)內(nèi)容在公共網(wǎng)絡上 電商電商內(nèi)部:內(nèi)部:對于需要動態(tài)生成的內(nèi)容,以及在電商系統(tǒng)內(nèi)部各個有調(diào)用關系的子系統(tǒng)之間,電商在應用以及數(shù)據(jù)庫上設置緩存,如WebService 的返回對象以及數(shù)據(jù)庫查詢結果以提升性能22IBM GBS電商內(nèi)部(主要對動態(tài)內(nèi)容進行緩存)瀏覽器緩存CDN電商外部(主要對靜態(tài)內(nèi)容進行緩存)BOC and IBM Confidential應用設計 - 通過CDN技術提高用戶訪問網(wǎng)站的響應速度 CDN的全稱是Content Delivery Network,即內(nèi)容分發(fā)網(wǎng)絡。其目的是通過在現(xiàn)

37、有的Internet中增加一層新的網(wǎng)絡架構,將網(wǎng)站的內(nèi)容發(fā)布到最接近用戶的網(wǎng)絡邊緣,使用戶可以就近取得所需的內(nèi)容,解決 Internet網(wǎng)絡擁擠的狀況,提高用戶訪問網(wǎng)站的響應速度。從技術上全面解決由于網(wǎng)絡帶寬小、用戶訪問量大、網(wǎng)點分布不均等原因所造成的用戶訪問網(wǎng)站響應速度慢的問題。 (也就是一個服務器的內(nèi)容,平均分部到多個服務器上,服務器智能識別,讓用戶獲取離用戶最近的服務器,提高速度23IBM GBS 所需的資源不在緩存里,需回源站抓取 所需的資源在緩存里,直接返回給用戶緩存服務器BOC and IBM Confidential應用設計 淘寶通過Tair(分布式緩存)+MySQL/Oracl

38、e的兩級緩存,形成其內(nèi)部緩存機制,提升訪問性能 24IBM GBS核心業(yè)務服務核心業(yè)務服務數(shù)據(jù)數(shù)據(jù)共享服務共享服務數(shù)據(jù)庫數(shù)據(jù)庫服務服務用戶中心商品中心店鋪中心交易中心促銷中心TFS分布式文件存儲DB管理中心分布式緩存MySQLOracleTDDL/讀寫分離讀寫分離外外部部調(diào)調(diào)用用淘寶后端服務系統(tǒng)群淘寶后端服務系統(tǒng)群以淘寶為例,它的后端服務系統(tǒng)群中有一部分數(shù)據(jù)共享服務,專門用來給予外部系統(tǒng)以及后端其他系統(tǒng)數(shù)據(jù)訪問服務,它基于分布式緩存產(chǎn)品Tair,Tair通過將緩存數(shù)據(jù)以鍵值對的形式分布式地存儲在多臺服務器上,使得緩存數(shù)據(jù)的訪問和維護十分的高效和可靠作為快速分布式緩存Tair的后端,數(shù)據(jù)庫服務的

39、MySQL和Oracle通過使用數(shù)據(jù)庫緩存BufferPool,緩存數(shù)據(jù)和索引信息,提升了數(shù)據(jù)庫的訪問性能。同時,到數(shù)據(jù)庫的持久化應用設計也做了特殊的處理,對于應用緩存中的數(shù)據(jù)的變更以異步方式寫入數(shù)據(jù)庫,同時較少應用與數(shù)據(jù)庫的壓力 對于銀行系統(tǒng)來說,由于數(shù)據(jù)的準確性要求非常高,可以放入緩存中的數(shù)據(jù)種類也比較有限。緩存較多的如靜態(tài)的參數(shù)信息等??煽紤]將一些實時性要求不高的業(yè)務查詢結果放入緩存,以提高常見查詢的交易性能BOC and IBM Confidential25應用設計 模糊查詢解決方案IBM GBS 根據(jù)電商的經(jīng)驗,讀寫分離以及業(yè)務控制是提升模糊查詢的性能或者減少模糊查詢對正常交易性能影

40、響的慣常方法。銀行一般盡可能地實現(xiàn)了業(yè)務控制,而在加入讀寫分離,并對讀庫進行分布化的數(shù)據(jù)存儲后,采用更新的數(shù)據(jù)庫技術進行查詢,以獲得較高的模糊查詢性能。聯(lián)機購物流程聯(lián)機購物流程核心業(yè)務服務核心業(yè)務服務數(shù)據(jù)基礎服務數(shù)據(jù)基礎服務搜索服務搜索服務TDDL讀寫分離讀寫分離分布式數(shù)據(jù)存儲分布式數(shù)據(jù)存儲DUMP、BUILD、分發(fā)索引文件分發(fā)索引文件外部用戶通過輸入商品搜索條件,淘寶的搜索服務對其進行分詞,并對分詞結果進行搜索意圖分析,最后從基于分布式數(shù)據(jù)存儲獲取搜索結果進行展示內(nèi)部用戶的查詢請求通常為對于商品、外部用戶等信息的查詢,已經(jīng)使用讀寫分離來保證聯(lián)機交易性能。通過指定搜索的類型和范圍預先生成搜索結果以提升性能。外部用戶對于交易記錄、付款記錄等信息的查詢已經(jīng)通過讀寫分離在查詢庫上進行操作,同時查詢記錄通過精準查詢進行了限制BOC and IBM Confidential26應用設計 提高查詢搜索的客戶體驗IBM GBS電商系統(tǒng)電商系統(tǒng) 電商系統(tǒng)通過主搜索系統(tǒng),為用戶提供統(tǒng)一的查詢?nèi)肟?,為用戶提供靈活查詢功能 后臺搜索引擎根據(jù)用戶輸入關鍵字或輸入的數(shù)字特點,自動調(diào)用后臺相關交易,從數(shù)據(jù)庫或緩存中返回匹配信息銀行系統(tǒng)銀行系統(tǒng) 提供統(tǒng)一的查詢?nèi)肟?,一般在首頁設置搜索框,允許用戶輸入各種查詢關鍵詞 主搜索系統(tǒng)根據(jù)輸入關鍵詞,進行分詞操作,并分析用戶搜索意

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論