




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1近年來,國內(nèi)電商業(yè)務(wù)的快速發(fā)展,給電商及銀行的核心應(yīng)用系統(tǒng)帶來了巨大的處理壓力2012.11.11夜間00:00以后,最高TPS達239,較平常日增長64%。全天交易量達3600萬從夜間00:35以后,聯(lián)機交易響應(yīng)時間明顯增長,前端支付寶相關(guān)交易出現(xiàn)超時IBMGBS第1分鐘超過1000萬人涌入天貓一分鐘內(nèi)支付寶交易成功筆數(shù)19.2萬筆10分鐘,支付寶總銷售額2億5000萬08時16分,支付寶總銷售額50億13時38分,支付寶總銷售額100億支付寶總銷售額191億2.億獨立用戶訪問支付寶實現(xiàn)成功交易筆數(shù)1億零580萬筆付款峰值20.5萬/分鐘2012.11.11核心系統(tǒng)交易量及響應(yīng)時間統(tǒng)計單位:秒淘寶網(wǎng)2012
11.11促銷業(yè)務(wù)統(tǒng)計2為支持這種業(yè)務(wù)量的挑戰(zhàn),電商及類似的網(wǎng)站系統(tǒng)持續(xù)進行了大量的系統(tǒng)架構(gòu)優(yōu)化IBMGBS1995.eBay成立,時采用CGI編寫,數(shù)據(jù)庫采用的是GDBM,最多只能支撐5萬件在線商品1997.FreeBSD遷移到Windows
NT,數(shù)據(jù)庫從GDBM遷移為Oracle,前端改造為Cluster,采用Resonate作為負載均衡,后端的Oracle機器升級為Sun
E1000小型機,同年給數(shù)據(jù)庫增加了一臺機器作為備庫,提升可用性1999.達到了瓶頸(已經(jīng)不能再加CPU和內(nèi)存了),于是開始將數(shù)據(jù)庫按業(yè)務(wù)拆分為多個庫,隨后將數(shù)據(jù)表進行了水平拆分,例如按類目存儲商品2002.將整個網(wǎng)站遷移為用Java構(gòu)建,在這個階段,做了DAL框架來屏蔽數(shù)據(jù)庫分庫分表帶來的影響,同時還設(shè)計了一個開發(fā)框架以供開發(fā)人員更好地上手進行功能開發(fā)。2003.
Taobao成立,直接購買了一個商業(yè)的phpAuction的軟件,在此基礎(chǔ)上改造產(chǎn)生了淘寶。2004.將系統(tǒng)由PHP遷移到Java,MySQL遷移為Oracle(小型機、高端存儲設(shè)備),應(yīng)用服務(wù)器采用了WebLogic2005.用JBoss替代了WebLogic,對數(shù)據(jù)庫進行了分庫,基于BDB做了分布式緩存,自行開發(fā)了分布式文件系統(tǒng)TFS以支持小文件的存儲,并建設(shè)了自己的CDN2007.對應(yīng)用系統(tǒng)進行垂直拆分,拆分后的系統(tǒng)都以Service的方式對外提供功能,對數(shù)據(jù)采用了垂直和水平拆分。隨后開始將數(shù)據(jù)逐漸從Oracle遷移到MySQL,同時開始嘗試新型的數(shù)據(jù)存儲方案(如采用HBase)1997.
Google成立,網(wǎng)頁內(nèi)容及索引數(shù)據(jù)分別分散到多臺Index與Doc服務(wù)器上。2001.對Index格式進行修改,并將所有Index放入內(nèi)存;通過并行處理+sharding來保證在降低對硬件要求的同時提高響應(yīng)速度;通過GFS(Google文件系統(tǒng))來存儲大量數(shù)據(jù)并支持高并發(fā)2004.再次對Index的格式進行了修改,同時通過替換MapReduce與BigTable使得海量數(shù)據(jù)的分析能夠達到在線系統(tǒng)的要求了,使得網(wǎng)站的響應(yīng)速度繼續(xù)提升2007.研發(fā)Colossus(下一代類GFS文件系統(tǒng))、Spanner(下一代類BigTable海量存儲和計算架構(gòu))、實時搜索(基于Colossus實現(xiàn)),主要都是為了提升搜索的實時性以及存儲更多數(shù)據(jù)。可擴展性可用性高性能可維護性低成本注:為方便進行針對性比較,下文中若無特別說明,則電商指“淘寶網(wǎng)”典型電商架構(gòu)分析電商典型淘寶的架構(gòu)呈現(xiàn)出以下三個主要特點動態(tài)、靜態(tài)內(nèi)容分離:出于降低帶寬壓力、提升客戶體驗的目的,淘寶將動態(tài)和靜態(tài)內(nèi)容作了切分并將消耗大量帶寬的靜態(tài)內(nèi)容特別是圖片的下載投放到CDN后端應(yīng)用架構(gòu)SOA化:淘寶后端應(yīng)用完全采用了面向服務(wù)的思想進行設(shè)計,子系統(tǒng)之間通過完整的服務(wù)定義以及高性能的自開發(fā)遠程服務(wù)交互框架進行分布式調(diào)用充分的數(shù)據(jù)分布式化:為了面對大數(shù)據(jù)量的處理,在服務(wù)化的基礎(chǔ)上,淘寶的架構(gòu)進一步將數(shù)據(jù)采用分布式存儲、緩存的方式在系統(tǒng)內(nèi)部進行了分布以擁有更好的擴展性3IBMGBS淘寶客戶群網(wǎng)絡(luò)傳輸前端應(yīng)用后端應(yīng)用…DNSDNSABTN網(wǎng)絡(luò)CDN系統(tǒng)靜態(tài)頁面圖片站點緩存店鋪商城互動社區(qū)無線商品…淘寶前端應(yīng)用靜態(tài)內(nèi)容動態(tài)內(nèi)容核心業(yè)務(wù)服務(wù)數(shù)據(jù)共享服務(wù)數(shù)據(jù)庫服務(wù)搜索服務(wù)用戶中心商品中心店鋪中心交易中心促銷中心TFS分布式文件存儲DB管理中心分布式緩存MySQLOracle大C搜索實時搜索SPU搜索…服務(wù)調(diào)用TDDL/讀寫分離分發(fā)索引搜索4與銀行相比,電商的交易具有一致性要求較低,可用性要求均等,吞吐量較大的特點IBMGBS電商基本交易模式網(wǎng)頁瀏覽提交訂單訂單支付電商交易模式的特點分析一致性:電商交易模式中,商品信息中的庫存數(shù)量、訂單提交后是否馬上被處理等,都不一定需要實時反映系統(tǒng)的最新情況,除了線上支付部分反映現(xiàn)金、積分等即時增減的項目,電商對于時效性的要求較銀行低可用性:電商采用瀏覽器作為基本的訪問方式,成千上萬的用戶同時進行訪問,基本的三種交易模式組成了關(guān)鍵的購物流程,流程中任何一個節(jié)點的失效將導(dǎo)致訂單流失,因此具有極高的可用性要求高吞吐量:電商的網(wǎng)頁點擊率在平時就高達25億次每日,其中包含大量的圖片等多媒體數(shù)據(jù)的訪問,對于吞吐量有極高的要求電商用戶通過瀏覽如淘寶包含的海量商品進行商品選擇。在瀏覽過程中,大量的數(shù)據(jù)被查詢及展現(xiàn)。用戶還會經(jīng)常使用搜索功能,通過模糊搜索得到經(jīng)過排序的搜索結(jié)果。這樣的搜索通常需要使用到分詞、搜索意圖分析等搜索引擎技術(shù)當用戶瀏覽完商品并將需要購買的商品從“購物車”中取出結(jié)算,系統(tǒng)為用戶生成訂單,用戶通過提交訂單完成一次購買行為。訂單提交過程中,電商系統(tǒng)需要進行查詢客戶信息、計算積分、鎖定庫存等一系列操作當用戶選擇在線支付訂單,那么電商系統(tǒng)通過將用戶引導(dǎo)到特定的支付界面或者銀行的支付界面,通過銀行等金融機構(gòu)的接口獲取貨款,在記錄自身內(nèi)部賬務(wù)的同時,完成對用戶訂單狀態(tài)以及用戶信息如積分信息等的更新5針對電商系統(tǒng)架構(gòu)及交易的特點,電商主要從基礎(chǔ)設(shè)施、數(shù)據(jù)庫與應(yīng)用設(shè)計等方面對其系統(tǒng)架構(gòu)進行持續(xù)優(yōu)化IBMGBS數(shù)據(jù)庫:數(shù)據(jù)同步機制數(shù)據(jù)庫:數(shù)據(jù)路由DBRoute應(yīng)用設(shè)計:分布式交易處理模式TCC一致性高吞吐量可用性基礎(chǔ)設(shè)施:多層級分布式部署數(shù)據(jù)庫及應(yīng)用設(shè)計:讀寫分離數(shù)據(jù)庫及應(yīng)用設(shè)計:緩存機制基礎(chǔ)設(shè)施:多層級分布計部署基礎(chǔ)設(shè)施及數(shù)據(jù)庫:自主研發(fā)的文件系統(tǒng)及數(shù)據(jù)庫系統(tǒng)應(yīng)用設(shè)計:異步處理機制6基礎(chǔ)設(shè)施–完全分布式架構(gòu)設(shè)計,去中心化IBMGBS電商系統(tǒng)通過完全分布式架構(gòu)設(shè)計,突破了單臺主機或數(shù)據(jù)庫計算能力的瓶頸。通過增加/減少服務(wù)器的個數(shù),可支持海量交易的處理,并保證了系統(tǒng)處理能力的高擴展性銀行系統(tǒng)Vs.Taobao完全分布式架構(gòu)設(shè)計體現(xiàn)在WEBServer,ApplicationServer,DatabaseServer等不同層級均采用分布式部署,并在應(yīng)用上設(shè)計分布式算法(Fourinone)以支持海量數(shù)據(jù)的分布式計算銀行系統(tǒng)相對較為封閉,僅銀行內(nèi)部主機參與存儲計算。外圍系統(tǒng)的訪問與通常也僅限于本系統(tǒng)內(nèi)部的安全網(wǎng)絡(luò)7基礎(chǔ)設(shè)施
–采用自主研發(fā)的文件系統(tǒng)以提高性能IBMGBS電商系統(tǒng)TAOBAO存儲數(shù)據(jù)的一個突出特點是單個文件尺寸較小,通常不大于1MB,但是數(shù)量巨大,傳統(tǒng)的文件系統(tǒng)或者網(wǎng)絡(luò)存儲設(shè)備很難解決類似的問題銀行系統(tǒng)為保證應(yīng)用開發(fā)的便利性,通常使用數(shù)據(jù)庫來進行數(shù)據(jù)存儲。部份情況也只使用操作系統(tǒng)的文件系統(tǒng),不會根據(jù)自身的數(shù)據(jù)要求對文件系統(tǒng)定制銀行系統(tǒng)可借鑒電商的做法,對一些非結(jié)構(gòu)化的數(shù)據(jù),使用定制的文件系統(tǒng)來方便存儲,并加快處理速度銀行系統(tǒng)Vs.淘寶自主研發(fā)TFS(TAOBAO分布式文件系統(tǒng)),用于存儲淘寶網(wǎng)主站的數(shù)據(jù),例如商品圖片、商品描述、交易快照、社區(qū)圖片等。TFS通過扁平化的數(shù)據(jù)組織結(jié)構(gòu),拋棄了傳統(tǒng)文件系統(tǒng)的目錄結(jié)構(gòu)在塊設(shè)備基礎(chǔ)上建立自有的文件系統(tǒng),減少EXT3等文件系統(tǒng)數(shù)據(jù)碎片帶來的性能損耗盡量縮減元數(shù)據(jù)大小,將元數(shù)據(jù)全部加載入內(nèi)存,提升訪問速度基本通過關(guān)系型數(shù)據(jù)庫(RDBMS)來進行數(shù)據(jù)的存儲根據(jù)操作系統(tǒng)的不同,聯(lián)機交易會使用VSAM或UNIX文件來進行少量數(shù)據(jù)的讀?。ㄈ鐓?shù)的讀取)在批處理中,為提高處理效率,部份作業(yè)會將數(shù)據(jù)從數(shù)據(jù)庫導(dǎo)成文件,再對文件進行操作處理8數(shù)據(jù)庫–采用讀寫分離提高數(shù)據(jù)庫處理能力IBMGBS讀寫分離最根本的思想是把對數(shù)據(jù)庫讀和寫的操作分開對應(yīng)不同的數(shù)據(jù)庫服務(wù)器,這樣能有效地減輕數(shù)據(jù)庫壓力,也能減輕IO壓力:將應(yīng)用程序中對數(shù)據(jù)庫的寫操作指向主服務(wù)器,而將讀操作指向從服務(wù)器。當主數(shù)據(jù)庫進行寫操作時,數(shù)據(jù)要同步到從的數(shù)據(jù)庫,這樣才能有效保證數(shù)據(jù)庫完整性MySQL有自己的同步數(shù)據(jù)技術(shù)。它是通過二進制日志來復(fù)制數(shù)據(jù)。從服務(wù)器定時向主服務(wù)器請求最新日志,主服務(wù)器異步將二進制日志輸送給從服務(wù)器。應(yīng)用程序與多臺數(shù)據(jù)庫之間,可以通過MySQLProxy反向代理解耦。應(yīng)用程序只需要跟MySQLProxy通信即可,而讀寫分離的工作都由MySQLProxy來完成,與此同時,MySQLProxy還對多個從服務(wù)器實現(xiàn)負載均衡以及可用性檢測。通過MySQLProxy將讀寫分離操作從應(yīng)用程序中進行隔離9數(shù)據(jù)庫–讀寫分離方式比較IBMGBS電商系統(tǒng)電商系統(tǒng)通過對數(shù)據(jù)庫的讀寫分離技術(shù),將客戶交易和海量查詢進行隔離,從而提高性能,但電商系統(tǒng)對查詢結(jié)果無法保證實時性(數(shù)據(jù)同步存在一定時差)銀行系統(tǒng)不對交易行為進行區(qū)分,全部使用統(tǒng)一的數(shù)據(jù)庫,雖能保證查詢結(jié)果的準確性,但存在競爭數(shù)據(jù)庫資源的情況,易造成性能瓶頸銀行可借鑒電商的做法,對業(yè)務(wù)進行梳理,對查詢實時性要求較低的業(yè)務(wù)可采用讀寫分離的方式來提高交易處理能力銀行系統(tǒng)Vs.建立主、從數(shù)據(jù)庫,主數(shù)據(jù)庫用于寫操作,從數(shù)據(jù)庫只做讀取操作主庫的數(shù)據(jù)在更新后會同步到從庫中復(fù)制是異步的,從服務(wù)器定時向主數(shù)據(jù)庫服務(wù)器請求最新日志,主服務(wù)器只需通過一個IO線來讀取本地二進制日志,并發(fā)送給從服務(wù)器。復(fù)制過程對主服務(wù)器的影響有限只使用一個主數(shù)據(jù)庫服務(wù)數(shù)據(jù)的讀寫在同一數(shù)據(jù)庫的同一表上進行,相互存在競爭。讀寫混搭,一次交易過程中不會將讀、寫處理分散到不同的服務(wù)器中分別進行處理。10數(shù)據(jù)庫–數(shù)據(jù)同步IBMGBS在實現(xiàn)數(shù)據(jù)庫讀寫分離后,需考慮主數(shù)據(jù)庫數(shù)據(jù)更新后,如何與從數(shù)據(jù)庫同步的問題。Taobao主要用以下三種工具來實現(xiàn)數(shù)據(jù)同步:Dbsync:異構(gòu)數(shù)據(jù)庫之間同步的工具。用于同步服務(wù)庫數(shù)據(jù)到HDFS的產(chǎn)品,通過分析數(shù)據(jù)庫服務(wù)器的log文件來提取相應(yīng)的數(shù)據(jù)庫動作,進而達到數(shù)據(jù)庫到HADOOP的數(shù)據(jù)同步,供相關(guān)部門提取增量數(shù)據(jù)Timetunnel:實時數(shù)據(jù)傳輸平臺。主要功能就是實時完成海量數(shù)據(jù)的交換,因此TimeTunnel的業(yè)務(wù)邏輯主要也就有兩個:一個是發(fā)布數(shù)據(jù),將數(shù)據(jù)發(fā)送到TimeTunnel;一個是訂閱數(shù)據(jù),從TimeTunnel讀取自己關(guān)心的數(shù)據(jù)DataX:一個在異構(gòu)的數(shù)據(jù)庫/文件系統(tǒng)之間高速交換數(shù)據(jù)的工具,實現(xiàn)了在任意的數(shù)據(jù)處理系統(tǒng)(RDBMS/Hdfs/Localfilesystem)之間的數(shù)據(jù)交換,由淘寶數(shù)據(jù)平臺部門完成。淘寶針對全量與增量數(shù)據(jù),分別采用了不同的實時/非實時同步工具隨著銀行業(yè)務(wù)的發(fā)展,系統(tǒng)中的數(shù)據(jù)增量與存量也越來越大。對一些各系統(tǒng)需用到的公用信息(如客戶信息),其數(shù)據(jù)的同步需更好的規(guī)劃數(shù)據(jù)庫–數(shù)據(jù)分析與展示11IBMGBS業(yè)務(wù)理解數(shù)據(jù)理解概念設(shè)計交互設(shè)計應(yīng)用開發(fā)用戶展示確定指標數(shù)據(jù)豐富是電商的最大優(yōu)勢之一。通過對海量用戶日志及交易數(shù)據(jù)的分析,可判斷用戶的消費偏好及商品的買家地域、年齡、信用等級等各項指標相對電商,銀行具有用戶的第一手真實交易信息。在當前利率市場化的背景下,如何快速、準確的對海量數(shù)據(jù)進行分析,以更好的進行業(yè)務(wù)營銷及客戶關(guān)系定價,是銀行面臨的重點課題之一12數(shù)據(jù)庫–通過數(shù)據(jù)庫擴展來支持業(yè)務(wù)量的增長IBMGBS‘08‘07’09~集中式垂直拆分水平拆分
用戶數(shù)據(jù)
基礎(chǔ)數(shù)據(jù)
業(yè)務(wù)數(shù)據(jù)07年,只有三個主要的數(shù)據(jù)庫,全部在小型機和存儲上面小型機從Unix操作系統(tǒng)到硬件,穩(wěn)定性都會比PCserver其實要高很多,當時的情況下淘寶用小型機是一個非常自然的選擇08年,把三個數(shù)據(jù)庫拆成更多的數(shù)據(jù)庫,或每一個數(shù)據(jù)庫支持一個比較單一的業(yè)務(wù)比如用戶、商品和交易,都會分成獨立的數(shù)據(jù)庫,然后放到獨立的小型計算中去(垂直拆分)09,10年,從業(yè)界能看到很多的經(jīng)驗分享,包括eBay、亞馬遜這些國外的大公司。水平拆分是淘寶的數(shù)據(jù)庫漲到一定程度后的架構(gòu)選擇水平拆分后機器、數(shù)據(jù)庫的數(shù)量都會多很多,所以從成本考慮的話,小型機和Oracle成本高,自然會選擇用PC
Server
和MySQL數(shù)據(jù)庫銀行系統(tǒng)的DB2DataSharing架構(gòu),基本上滿足水平拆分架構(gòu)的超大容量、分散存取的壓力瓶頸電商數(shù)據(jù)庫架構(gòu)演變:07年開始淘寶的業(yè)務(wù)量保持每年自然翻一番的增長前端業(yè)務(wù)量增長一倍,在數(shù)據(jù)庫上有可能增長是好幾倍隔離13數(shù)據(jù)庫–數(shù)據(jù)庫擴展在銀行的應(yīng)用IBMGBS電商系統(tǒng)電商系統(tǒng)運用分表、分庫進行容量的擴展,以及數(shù)據(jù)垂直的分類,在容量方面得到很好的解決,但必須在應(yīng)用層配合,發(fā)展出DBRoute來解決分割帶來的完整性議題銀行使用主機DB2的數(shù)據(jù)容量加上分區(qū)的技術(shù),可以滿足銀行目前的數(shù)據(jù)的擴展需求銀行系統(tǒng)Vs.拆分大字段、分表、分庫(垂直、水平分割)使用多個幾個Oracle數(shù)據(jù)庫分庫分表用戶的信息按照ID來放到兩個數(shù)據(jù)庫里面(DB1/DB2)商品的信息跟著賣家放在兩個對應(yīng)的數(shù)據(jù)庫商品類目等通用信息放在第三個庫里面(DBcommon)優(yōu)點:擴展很大的數(shù)據(jù)容量缺點:應(yīng)用程序很麻煩,必須到兩個數(shù)據(jù)庫里面分別查詢出來對應(yīng)的商品;要按時間排序必須全部查出來在應(yīng)用程序里面做合并;還有分頁怎么處理?關(guān)鍵字查詢怎么處理?解法:發(fā)展數(shù)據(jù)庫路由的框架DBRoute為保持數(shù)據(jù)的一致性、完整性與易維護性,賬務(wù)與查詢數(shù)據(jù)基本上是只有一份,比如表中集中存放相應(yīng)主體的數(shù)據(jù)(如存款賬戶主表INVM等)主機DB2數(shù)據(jù)庫的數(shù)據(jù)容量極大,不需要因容量緣故去拆分,減少分散式數(shù)據(jù)庫的問題DB2數(shù)據(jù)庫分區(qū)技術(shù),相同的表信息存放在一個表的不同分區(qū),對于應(yīng)用處理是透明的,不需要在應(yīng)用中去考慮數(shù)值的位置BOCS少部分表也采取分表設(shè)計,根據(jù)不同特性數(shù)值分布到分表14數(shù)據(jù)庫–數(shù)據(jù)庫擴展帶來的數(shù)據(jù)庫的一致性問題(ACIDvsBASE)IBMGBS電商系統(tǒng)問題:ACID原則適用于互聯(lián)網(wǎng)應(yīng)用嗎?可用性似乎比一致性重要些。BASE策略與ACID不同,其基本思想就是通過犧牲強一致性,以獲得更好的可用性或可靠性銀行系統(tǒng)Vs.ACID(Atomicity、Consistency、Isolation、Durability)是關(guān)系型數(shù)據(jù)庫的最基本原則,遵循ACID原則強調(diào)一致性,對成本要求很高,對性能影響很大。銀行系統(tǒng)的業(yè)務(wù)特性,一致性比可用性更重要,必須符合ACID的要求。BASE策略:
BasicallyAvailable
Softstate
Eventuallyconsistent銀行系統(tǒng)15數(shù)據(jù)庫–采用NOSQL(NotOnlySQL不僅僅是SQL)提高處理能力IBMGBS可借鑒電商的做法,對不同的數(shù)據(jù)類型采取不同的存儲及處理方式電商系統(tǒng)網(wǎng)站要根據(jù)用戶個性化信息來實時生成動態(tài)頁面和提供動態(tài)信息,所以基本上無法使用動態(tài)頁面靜態(tài)化技術(shù),因此數(shù)據(jù)庫并發(fā)負載非常高,往往要達到每秒上萬次讀寫請求。對于大型的電商網(wǎng)站,每天用戶產(chǎn)生海量的用戶動態(tài),以國外的Friendfeed為例,一個月就達到了2.5億條用戶動態(tài),對于關(guān)系數(shù)據(jù)庫來說,在一張2.5億條記錄的表里面進行SQL查詢,效率是極其低下乃至不可忍受的。NoSQL是非關(guān)系型數(shù)據(jù)存儲的廣義定義。它打破了長久以來關(guān)系型數(shù)據(jù)庫與ACID理論大一統(tǒng)的局面。NoSQL數(shù)據(jù)存儲不需要固定的表結(jié)構(gòu),通常也不存在連接操作。在大數(shù)據(jù)存取上具備關(guān)系型數(shù)據(jù)庫無法比擬的性能優(yōu)勢。該術(shù)語在2009年初得到了廣泛認同Vs.銀行通常采用關(guān)系型數(shù)據(jù)庫來進行數(shù)據(jù)的存儲由于銀行業(yè)務(wù)對于數(shù)據(jù)庫事務(wù)的一致性,以及數(shù)據(jù)庫讀寫的實時性,要求進行數(shù)據(jù)庫事務(wù)管理目前銀行應(yīng)用中,仍存在一定的大表關(guān)聯(lián)查詢,以及復(fù)雜的數(shù)據(jù)分析類型的復(fù)雜SQL報表查詢,給系統(tǒng)性能及穩(wěn)定性造成了隱患Taobao為應(yīng)對數(shù)據(jù)庫高并發(fā)讀寫的需求,同時滿足海量數(shù)據(jù)的存儲,采用NOSQL數(shù)據(jù)存儲方式16數(shù)據(jù)庫–可擴展關(guān)系型數(shù)據(jù)庫OceanBaseIBMGBS數(shù)據(jù)表存儲形式:OceanBase的主鍵采用二進制字符串,表數(shù)據(jù)按主鍵值范圍切分為多個Tablet塊按主鍵順序存放存儲數(shù)據(jù)劃分:增刪改的數(shù)據(jù)稱為動態(tài)數(shù)據(jù)(通常在內(nèi)存,也稱為內(nèi)存表),以增量方式記錄;一段時間內(nèi)相對穩(wěn)定的主體數(shù)據(jù)稱為基準數(shù)據(jù)ChunkServer:用于保存基準數(shù)據(jù)的服務(wù)器,通常是多臺,從而避免軟件硬件故障導(dǎo)致的服務(wù)UpdateServer:保存動態(tài)數(shù)據(jù)的服務(wù)器MergeServer:進行靜動態(tài)數(shù)據(jù)合并的服務(wù)器,使得用戶能夠訪問到完整的最新的數(shù)據(jù)RootServer:記錄commitlog并通常采用雙機熱備淘寶根據(jù)自身數(shù)據(jù)的特點,設(shè)計了支持海量數(shù)據(jù)的分布式數(shù)據(jù)庫系統(tǒng),實現(xiàn)了數(shù)千億條記錄、數(shù)百TB數(shù)據(jù)上的跨行跨表事務(wù)銀行在目前使用的RDBMS基礎(chǔ)上,可考慮根據(jù)自身數(shù)據(jù)類型的特點,設(shè)計自已的數(shù)據(jù)存儲方式17應(yīng)用設(shè)計–采用基于SOA的HSF服務(wù)框架(淘寶遠程服務(wù)調(diào)用框架)IBMGBS銀行應(yīng)用基本上還停留在CALL公共函數(shù)/公共模塊階段,SOA的服務(wù)化程度較低服務(wù)化過程本身并不容易,要求對業(yè)務(wù)、技術(shù)的高度理解及歸納。銀行業(yè)務(wù)紛繁復(fù)雜,其概念化、抽象化過程相比淘寶網(wǎng)站復(fù)雜度更高,因此,銀行應(yīng)用的標準服務(wù)化是一個長期的漸進過程。但SOA服務(wù)化將給銀行應(yīng)用的開發(fā)、部署模式,業(yè)務(wù)服務(wù)水平帶來極大的便利調(diào)用者調(diào)用者服務(wù)提供者服務(wù)注冊查找中心異步通信服務(wù)服務(wù)提供者淘寶HSF遵循SOA框架體系開發(fā),是淘寶網(wǎng)站成熟服務(wù)化過程中最重要的基礎(chǔ)性支撐框架,是其網(wǎng)站能夠承受每日巨大用戶訪問壓力仍能從容擴展的關(guān)鍵因素之一大規(guī)模使用HSF,服務(wù)化相對成熟之后淘寶網(wǎng)站變得:前端應(yīng)用高度分化,拆分成一個個功能單一的應(yīng)用系統(tǒng),后端服務(wù)化接口也劃分的較細,同時針對不同業(yè)務(wù)和具體的技術(shù)實現(xiàn)做個性化優(yōu)化,增強了各個節(jié)點的健壯性,高效性淘寶HSF給整個系統(tǒng)架構(gòu)帶來的好處:應(yīng)用間的耦合降低:在服務(wù)化接口成熟的情況下,擴展新的業(yè)務(wù)需求變得方便,主要就是一個組合服務(wù)化接口的過程開發(fā)人員可以專心關(guān)注業(yè)務(wù),而不用考慮分布式領(lǐng)域中的各種細節(jié)技術(shù),例如遠程通訊、性能損耗、調(diào)用的透明化、同步/異步調(diào)用方式的實現(xiàn)等等問題各個系統(tǒng)負責(zé)的業(yè)務(wù)更純粹,方便做針對新的性能調(diào)優(yōu)和功能改進:如容災(zāi)性,并發(fā),監(jiān)控等方面的優(yōu)化。這種針對性有助于增強系統(tǒng)的高性能,高健壯銀行系統(tǒng)18應(yīng)用設(shè)計
–為保證分布式事務(wù)完整性而設(shè)計的TCC交易模式IBMGBS為節(jié)省協(xié)議成本,通過自主開發(fā)的TCC機制實現(xiàn)跨數(shù)據(jù)庫的事務(wù)完整性和一致性處理電商系統(tǒng)一個完整的業(yè)務(wù)活動由一個主業(yè)務(wù)服務(wù)與若干從業(yè)務(wù)服務(wù)組成。主業(yè)務(wù)服務(wù)負責(zé)發(fā)起并完成整個業(yè)務(wù)活動,從業(yè)務(wù)服務(wù)提供TCC型業(yè)務(wù)操作業(yè)務(wù)活動管理器控制業(yè)務(wù)活動的一致性,它登記業(yè)務(wù)活動中的操作,并在業(yè)務(wù)活動提交時確認所有的TCC型操作的confirm操作,在業(yè)務(wù)活動取消時調(diào)用所有TCC型操作的cancel操作Try:嘗試執(zhí)行業(yè)務(wù):完成所有業(yè)務(wù)檢查(一致性),預(yù)留必須業(yè)務(wù)資源(準隔離性)Confirm:確認執(zhí)行業(yè)務(wù):真正執(zhí)行業(yè)務(wù),不作任何業(yè)務(wù)檢查,只使用Try階段預(yù)留的業(yè)務(wù)資源Cancel:取消執(zhí)行業(yè)務(wù):釋放Try階段預(yù)留的業(yè)務(wù)資源啟動業(yè)務(wù)活動登記業(yè)務(wù)操作提交/回滾業(yè)務(wù)活動主業(yè)務(wù)服務(wù)業(yè)務(wù)活動管理器從業(yè)務(wù)服務(wù)TryConfirmCancelLOG數(shù)據(jù)庫數(shù)據(jù)庫數(shù)據(jù)庫數(shù)據(jù)庫Vs.對于分布式事務(wù),通過CICS等中間件來實現(xiàn)兩階段提交(TwoPhaseCommit)或DTP模型存在一定的協(xié)議成本(包括準備階段與全局事務(wù)狀態(tài)的持久成本)準備后,提交前的故障引發(fā)一系列隔離與恢復(fù)難題19應(yīng)用設(shè)計
–采用大量異步處理以使得系統(tǒng)具有更高的吞吐能力IBMGBS電商系統(tǒng)銀行可以考慮兩方面的異步化處理部分業(yè)務(wù)流程異步化:銀行可以根據(jù)業(yè)務(wù)流程特性,將業(yè)務(wù)流程中可以異步完成的步驟異步完成,如會計分錄的記錄等,以增加交易性能交易處理完全異步化:對于資源消耗較大的交易(如大數(shù)據(jù)量的查詢等)進行異步化處理,請求發(fā)起方提交查詢請求并在一段時間后查看查詢結(jié)果銀行系統(tǒng)Vs.商品信息異步訂單審核庫存鎖定分布式存儲異步訂單庫商品瀏覽訂單提交訂單支付電商交易路徑上盡可能地利用異步處理,來降低對系統(tǒng)的負載,但涉及到金額的操作則使用同步以保證一致性典型的銀行交易中,每一個步驟都需要同步的返回以保證一致性,如上述典型的開戶交易,存款需要開戶的生效,余額查詢需要存款的生效開戶存款余額查詢同步前端核心20應(yīng)用設(shè)計
–7x24設(shè)計IBMGBS電商系統(tǒng)銀行可考慮將部分參與批量的數(shù)據(jù)在數(shù)據(jù)抄寫機制下,向其他庫進行復(fù)制,設(shè)置兩個復(fù)制庫,在開始批量時,通過控制時機,將主庫向其一個復(fù)制庫的抄寫轉(zhuǎn)向另一庫,那么后續(xù)的批量作業(yè)能夠在數(shù)據(jù)靜止的那個復(fù)制庫上進行,避免干擾聯(lián)機交易的運行銀行系統(tǒng)Vs.實時數(shù)據(jù)準實時數(shù)據(jù)批量數(shù)據(jù)報表BI…電商由于不涉及到復(fù)雜的計息及計費等處理。并且電商系統(tǒng)設(shè)計上已經(jīng)做了充分的數(shù)據(jù)分布,因此批量完成相對簡單實時數(shù)據(jù)批量數(shù)據(jù)銀行出于在多個系統(tǒng)間交換大量數(shù)據(jù)、生成統(tǒng)計報表等原因,在夜間會進行批量數(shù)據(jù)處理操作。批量往往對于具有較高的負載,同時會要求某些數(shù)據(jù)靜止,因此會影響非批量的交易,因此核心系統(tǒng)通常設(shè)計有特別的機制來使得交易服務(wù)的連續(xù)提供,并且由于批量過程中對其它系統(tǒng)的數(shù)據(jù)交換會影響第二天的業(yè)務(wù),批量往往具有很嚴格的時間要求。銀行在批量期間所處理的數(shù)據(jù)基本上都是采用數(shù)據(jù)庫技術(shù)通過UNLOAD等方式直接抓取的實時數(shù)據(jù),為了避免對還在進行交易的影響,銀行批量需要經(jīng)過復(fù)雜設(shè)計21應(yīng)用設(shè)計
–動、靜態(tài)資源分離IBMGBS對銀行而言,只是被查詢、不再被更新的數(shù)據(jù)可認為是靜態(tài)資源,例如交易日志、賬戶日志;尚處于持續(xù)更新的數(shù)據(jù)可認為是動態(tài)資源,例如客戶信息、賬戶信息對銀行的動、靜態(tài)資源可考慮分別提供服務(wù)能力,避免靜態(tài)資源的服務(wù)影響到對動態(tài)資源的服務(wù)性能。例如,可考慮將超過1年的歷史賬戶交易日志的查詢和日常核心業(yè)務(wù)處理區(qū)分開,單獨部署一套查詢系統(tǒng),避免占用日常核心業(yè)務(wù)處理能力BrowserWebServerWebServer靜態(tài)資源動態(tài)資源ApplicationServer頁面中規(guī)劃好靜態(tài)、動態(tài)資源區(qū)域。靜態(tài)資源區(qū)域放置相對不變的文本、圖形圖像、視頻等信息;動態(tài)資源區(qū)域放置需和用戶隨時交互變化更新的信息動態(tài)、靜態(tài)資源區(qū)域分別連接獨立的WebServer處理頁面請求DBServer數(shù)據(jù)庫緩存應(yīng)用緩存公共網(wǎng)絡(luò)緩存應(yīng)用設(shè)計-電商如淘寶通過在交易路徑上設(shè)置多級緩存以增加性能總體而言,電商在交易路徑上設(shè)置了四道緩存電商外部:通過設(shè)置靜態(tài)內(nèi)容的過期時間來使用了一部分的瀏覽器緩存,同時通過使用CDN來緩存大量的靜態(tài)內(nèi)容在公共網(wǎng)絡(luò)上電商內(nèi)部:對于需要動態(tài)生成的內(nèi)容,以及在電商系統(tǒng)內(nèi)部各個有調(diào)用關(guān)系的子系統(tǒng)之間,電商在應(yīng)用以及數(shù)據(jù)庫上設(shè)置緩存,如WebService的返回對象以及數(shù)據(jù)庫查詢結(jié)果以提升性能22IBMGBS電商內(nèi)部(主要對動態(tài)內(nèi)容進行緩存)瀏覽器緩存CDN電商外部(主要對靜態(tài)內(nèi)容進行緩存)應(yīng)用設(shè)計-通過CDN技術(shù)提高用戶訪問網(wǎng)站的響應(yīng)速度CDN的全稱是ContentDeliveryNetwork,即內(nèi)容分發(fā)網(wǎng)絡(luò)。其目的是通過在現(xiàn)有的Internet中增加一層新的網(wǎng)絡(luò)架構(gòu),將網(wǎng)站的內(nèi)容發(fā)布到最接近用戶的網(wǎng)絡(luò)"邊緣",使用戶可以就近取得所需的內(nèi)容,解決Internet網(wǎng)絡(luò)擁擠的狀況,提高用戶訪問網(wǎng)站的響應(yīng)速度。從技術(shù)上全面解決由于網(wǎng)絡(luò)帶寬小、用戶訪問量大、網(wǎng)點分布不均等原因所造成的用戶訪問網(wǎng)站響應(yīng)速度慢的問題。(也就是一個服務(wù)器的內(nèi)容,平均分部到多個服務(wù)器上,服務(wù)器智能識別,讓用戶獲取離用戶最近的服務(wù)器,提高速度23IBMGBS所需的資源不在緩存里,需回源站抓取所需的資源在緩存里,直接返回給用戶緩存服務(wù)器應(yīng)用設(shè)計–淘寶通過Tair(分布式緩存)+MySQL/Oracle的兩級緩存,形成其內(nèi)部緩存機制,提升訪問性能
24IBMGBS核心業(yè)務(wù)服務(wù)數(shù)據(jù)共享服務(wù)數(shù)據(jù)庫服務(wù)用戶中心商品中心店鋪中心交易中心促銷中心TFS分布式文件存儲DB管理中心分布式緩存MySQLOracleTDDL/讀寫分離外部調(diào)用淘寶后端服務(wù)系統(tǒng)群以淘寶為例,它的后端服務(wù)系統(tǒng)群中有一部分數(shù)據(jù)共享服務(wù),專門用來給予外部系統(tǒng)以及后端其他系統(tǒng)數(shù)據(jù)訪問服務(wù),它基于分布式緩存產(chǎn)品Tair,Tair通過將緩存數(shù)據(jù)以鍵值對的形式分布式地存儲在多臺服務(wù)器上,使得緩存數(shù)據(jù)的訪問和維護十分的高效和可靠作為快速分布式緩存Tair的后端,數(shù)據(jù)庫服務(wù)的MySQL和Oracle通過使用數(shù)據(jù)庫緩存BufferPool,緩存數(shù)據(jù)和索引信息,提升了數(shù)據(jù)庫的訪問性能。同時,到數(shù)據(jù)庫的持久化應(yīng)用設(shè)計也做了特殊的處理,對于應(yīng)用緩存中的數(shù)據(jù)的變更以異步方式寫入數(shù)據(jù)庫,同時較少應(yīng)用與數(shù)據(jù)庫的壓力對于銀行系統(tǒng)來說,由于數(shù)據(jù)的準確性要求非常高,可以放入緩存中的數(shù)據(jù)種類也比較有限。緩存較多的如靜態(tài)的參數(shù)信息等。可考慮將一些實時性要求不高的業(yè)務(wù)查詢結(jié)果放入緩存,以提高常見查詢的交易性能25應(yīng)用設(shè)計–模糊查詢解決方案IBMGBS根據(jù)電商的經(jīng)驗,讀寫分離以及業(yè)務(wù)控制是提升模糊查詢的性能或者減少模糊查詢對正常交易性能影響的慣常方法。銀行一般盡可能地實現(xiàn)了業(yè)務(wù)控制,而在加入讀寫分離,并對讀庫進行分布化的數(shù)據(jù)存儲后,采用更新的數(shù)據(jù)庫技術(shù)進行查詢,以獲得較高的模糊查詢性能。聯(lián)機購物流程核心業(yè)務(wù)服務(wù)數(shù)據(jù)基礎(chǔ)服務(wù)搜索服務(wù)TDDL讀寫分離分布式數(shù)據(jù)存儲DUMP、BUILD、分發(fā)索引文件外部用戶通過輸入商品搜索條件,淘寶的搜索服務(wù)對其進行分詞,并對分詞結(jié)果進行搜索意圖分析,最后從基于分布式數(shù)據(jù)存儲獲取搜索結(jié)果進行展示內(nèi)部用戶的查詢請求通常為對于商品、外部用戶等信息的查詢,已經(jīng)使用讀寫分離來保證聯(lián)機交易性能。通過指定搜索的類型和范圍預(yù)先生成搜索結(jié)果以提升性能。外部用戶對于交易記錄、付款記錄等信息的查詢已經(jīng)通過讀寫分離在查詢庫上進行操作,同時查詢記錄通過精準查詢進行了限制26應(yīng)用設(shè)計–提高查詢搜索的客戶體驗IBMGBS電商系統(tǒng)電商系統(tǒng)通過主搜索系統(tǒng),為用戶提供統(tǒng)一的查詢?nèi)肟?,為用戶提供靈活查詢功能后臺搜索引擎根據(jù)用戶輸入關(guān)鍵字或輸入的數(shù)字特點,自動調(diào)用后臺相關(guān)交易,從數(shù)據(jù)庫或緩存中返回匹配信息銀行系統(tǒng)Vs.提供統(tǒng)一的查詢?nèi)肟?,一般在首頁設(shè)置搜索框,允許用戶輸入各種查詢關(guān)鍵詞主搜索系統(tǒng)根據(jù)輸
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 代款合同范本樓房
- 上海鏈家新版合同范本
- 保理合同范本 應(yīng)收
- 包衣良種合同范本
- 單位房交易合同范本
- 中介與按揭合同范本
- 單獨招生合同范本
- 勞務(wù)施工合同范本私人
- 廚房預(yù)付工資合同范本
- 發(fā)貨員合同范本
- xxx項目財務(wù)評價報告
- 2024年山東交通職業(yè)學(xué)院高職單招語文歷年參考題庫含答案解析
- 團隊賦能培訓(xùn)
- 萬兆小區(qū)方案及實施路徑
- 初中圖書室閱覽室建設(shè)實施方案范文(2篇)
- 2025年《中華人民共和國婦女權(quán)益保障法》知識競賽題庫(含答案)
- 2024年中國養(yǎng)老產(chǎn)業(yè)商學(xué)研究報告-銀發(fā)經(jīng)濟專題
- 2024-2025學(xué)年度七年級上冊數(shù)學(xué)期末實際問題應(yīng)用題-盈虧問題提升訓(xùn)練含答案
- 附件2:福建省建設(shè)工程造價咨詢服務(wù)收費指導(dǎo)價
- AutoCAD 2024中文版電氣設(shè)計基礎(chǔ)實例教程 課件 第2章 AutoCAD2024入門
- 稅務(wù)局個人所得稅綜合所得匯算清繳
評論
0/150
提交評論