蚂蚁集团高级架构师郭援非:分布式数据库是金融机构数字化转型的最佳路径...
中生代技術(shù)
鏈接技術(shù)大咖,分享技術(shù)干貨
全文:4500字
2020年8月26-28日,在中科軟科技舉辦的中國財險科技應用高峰論壇上,螞蟻集團高級解決方案架構(gòu)師郭援非發(fā)表了《OceanBase分布式關(guān)系數(shù)據(jù)庫助力保險業(yè)務創(chuàng)新》的主題演講,為大家分享了螞蟻集團企業(yè)級分布式關(guān)系數(shù)據(jù)庫OceanBase的發(fā)展歷程、產(chǎn)品價值,以及在保險行業(yè)的最佳實踐應用。
以下為演講整理:
?
各位朋友,下午好!
?
支付寶在全球有十幾億用戶,他們可以同時進行可靠、穩(wěn)定、高效的支付交易,這背后離不開一個重要的秘密武器——OceanBase。今天我很榮幸向大家介紹OceanBase的發(fā)展過程、產(chǎn)品特點,以及在保險行業(yè)的最佳實踐。
?
分布式數(shù)據(jù)庫OceanBase的迭代
OceanBase數(shù)據(jù)庫立項于2010年,第一個客戶是淘寶收藏夾。2013年,OceanBase開始了對SQL的支持。2014年,OceanBase開始支持網(wǎng)商銀行的所有業(yè)務,成為了全球首個應用在金融核心業(yè)務系統(tǒng)的分布式關(guān)系數(shù)據(jù)庫。從2014年到2016年,支付寶全部的交易系統(tǒng)和核心賬務系統(tǒng)都跑在OceanBase之上。多年來全世界十幾億用戶在支付寶上發(fā)生的所有交易都是由OceanBase來承載,始終穩(wěn)若磐石。
?
2017年,我們開始向更多的外部客戶輸出我們的技術(shù),我們幫助南京銀行打造了“鑫云+”互聯(lián)網(wǎng)金融業(yè)務核心。OceanBase服務過的這些場景里既包括新興的互聯(lián)網(wǎng)金融核心業(yè)務、傳統(tǒng)的金融核心業(yè)務,也包括對傳統(tǒng)數(shù)據(jù)庫的替換、對MySQL的替換,都非常成功。
?
2019年, OceanBase參加了世界數(shù)據(jù)庫范圍內(nèi)最權(quán)威的TPC-C認證測試,我們?nèi)〉昧?088萬tpmC的成績,是第二名傳統(tǒng)數(shù)據(jù)庫公司甲骨文的兩倍。TPC-C絕對不是一個簡單的跑分測試,實際上,它是要求被測試的對象必須滿足數(shù)據(jù)庫的ACID四個事務特征才能夠進行的測試。
?
2020年,我們又一次參加了TPC-C測試, 達到了7.07億tpmC,跑出了接近去年12倍的成績,再次問鼎TPC-C榜首。今年6月份OceanBase正式獨立成公司,我們立志于成為世界領(lǐng)先的企業(yè)級數(shù)據(jù)技術(shù)解決方案提供商。
?
數(shù)據(jù)庫形態(tài)演進
金融業(yè)的核心業(yè)務系統(tǒng),包括保險行業(yè)的核心業(yè)務系統(tǒng)仍舊大規(guī)模使用傳統(tǒng)集中式數(shù)據(jù)庫。這種方案帶來了兩個問題,一是集中式數(shù)據(jù)庫造價非常高,來自于兩方面,一方面是軟件License很貴;另一方面是硬件很貴,因為它必須使用高端硬件,比如IBM的大機、EMC的高端存儲,這些都是非常昂貴的,時間長了再大的企業(yè)也很難承受;二是擴展性非常不好,傳統(tǒng)集中式數(shù)據(jù)庫都是基于共享存儲(shared-storage)的方式做橫向擴展,當面臨關(guān)鍵業(yè)務系統(tǒng)發(fā)展需要不斷擴容的時候,這種方案有心無力,難以做有效的支撐。
?
對于上面這種方案業(yè)界提了一種補丁方案,十幾年前曾有人提出既然傳統(tǒng)集中式數(shù)據(jù)庫很貴,那么在單機開源的基礎(chǔ)上加一個語法兼容,這樣就解決了它昂貴的問題。但是發(fā)展到今天,我們在金融領(lǐng)域的核心系統(tǒng)還沒有看到廣泛使用這種方案。原因很簡單,金融業(yè)核心系統(tǒng)使用傳統(tǒng)集中式數(shù)據(jù)庫主要不是因為它們在語法上的完善和優(yōu)秀,根本原因在于它們的穩(wěn)定可靠,而這個補丁方案做不到這些,同時這個方案也沒有解決擴展性的問題。
?
說到擴展性同樣是在十幾年以前,最早在互聯(lián)網(wǎng)企業(yè)中提出了這么一種方案,叫做分庫分表,一個典型的例子就是在多臺單機的MySQL上,用Proxy把MySQL單機集成為MySQL集群,提供很好的算力。這種方案同樣具有很大的問題,當計算發(fā)生在單個MySQL機器內(nèi)部的時候一切很好,但是一旦用戶的負載跨越MySQL單機邊界的時候,你可能會發(fā)現(xiàn)分庫分表系統(tǒng)的表現(xiàn)并不盡如人意。具體來說,在全局事務、數(shù)據(jù)強一致性、負載均衡以及復雜SQL方面都不能很好的支持,所以這種方案的使用場景非常受限。截止到今天,在銀行、保險、券商行業(yè)的核心業(yè)務系統(tǒng)中依然沒有廣泛使用過這種方案。
?
那么到底是否存在這樣一種數(shù)據(jù)庫系統(tǒng),它既可以提供傳統(tǒng)集中式數(shù)據(jù)庫的高可靠性,又成本可控,同時擴展性良好?在這個基礎(chǔ)之上還能夠滿足事務的ACID、具備強一致性、復雜SQL的處理能力?答案是有,而且可以更好,那就是OceanBase。
?
OceanBase的三大獨特價值
首先,OceanBase是一款完全自主研發(fā)的分布式關(guān)系數(shù)據(jù)庫,代碼是百分之百自研的,包括SQL引擎、存儲引擎都是我們的工程師自己一行一行代碼寫出來的。這一點很重要,它意味著當你的數(shù)據(jù)庫出現(xiàn)問題的時候,我們的工程師不需要求助開源社區(qū),我們自己就可以兜底,這對于要求穩(wěn)定,要求可靠,要求有可預期性的金融領(lǐng)域的核心業(yè)務系統(tǒng)是一個剛需,這一點OceanBase可以充分提供。
?
第二, OceanBase是全世界唯一一款經(jīng)過長時間復雜金融場景驗證的原生分布式數(shù)據(jù)庫。數(shù)據(jù)庫其實是一個非常復雜的系統(tǒng),它的復雜度甚至不亞于操作系統(tǒng),對它的各種復雜應用場景的測試不是一個簡單的測試程序可以窮盡的。目前,可能唯一有效的方法就是在實踐中找到足夠復雜、足夠多的場景對數(shù)據(jù)庫進行反復的使用,使用到最后沒有問題為止大家才會信任它。我們非常高興的告訴大家,OceanBase做到了。
?
第三,OceanBase數(shù)據(jù)庫是全世界范圍內(nèi)唯一一款基于普通的X86云服務器,在TPC-C領(lǐng)域獲得第一名的原生分布式數(shù)據(jù)庫。登頂TPC-C榜單意味著OceanBase不但可以提供世界級的性能,而且可以提供單機數(shù)據(jù)庫一樣的完整體驗,這一點意味著用戶可以像使用單機數(shù)據(jù)庫一樣使用OceanBase。
?
OceanBase核心特性
在OceanBase數(shù)據(jù)庫中,我們通過“五高一多”的特點定義了分布式數(shù)據(jù)庫的領(lǐng)先標準。
?
高可用
我們通過Paxos協(xié)議和多副本技術(shù),可以提供很好的高可用性,當出現(xiàn)災難的時候我們可以做到RPO=0,RTO<30秒,這完全可以滿足企業(yè)的容災需求。同時由于我們使用的是Paxos協(xié)議, Paxos協(xié)議是支持日志空洞的,這就帶來一個好處,當在網(wǎng)絡(luò)出現(xiàn)波動的時候,我們可以給到更好的性能保證。
?
OceanBase的高可用性,是完全在通用X86服務器和普通硬件上提供出來的,沒有使用任何高端硬件,所以我們的成本會更低一些。
?
高擴展
在實際生產(chǎn)系統(tǒng)中單個OceanBase集群內(nèi)的服務器可以達到100臺以上。而且OceanBase具有很好的線性擴展比。高擴展性還體現(xiàn)在擴容時的自動負載均衡,這意味著當DBA需要擴容的時候,所做的只是增加一臺機器到集群里,接下來,我們的OceanBase管理系統(tǒng)會自動的根據(jù)系統(tǒng)的負載情況,把數(shù)據(jù)遷移到新加的機器上。整個擴容縮容過程中,業(yè)務沒有感知。
?
高性能
我們采用了很多先進的技術(shù)來提高數(shù)據(jù)庫的性能。比如LSM Tree、無鎖結(jié)構(gòu)、消除磁盤的隨機寫等等,這些技術(shù)幫助我們充分使用硬件的能力,再輔以高擴展性,我們就可以提供一個世界級性能的OceanBase集群。
?
在實際的生產(chǎn)系統(tǒng)里,我們可以在峰值的時候提供6100萬次每秒,單表最大容量可以到3200億行。和高性能伴隨的是低成本,因為我們采用了LSM Tree結(jié)構(gòu),所以當數(shù)據(jù)落盤的時候是更有組織的,可以做到1:3的壓縮比。
?
高透明
我們實現(xiàn)了不少關(guān)鍵技術(shù),比如全局一致性快照、全局索引、自動事務兩階段提交。使用OceanBase數(shù)據(jù)庫,應用就像使用一臺單機數(shù)據(jù)庫一樣,不需要做針對分布式數(shù)據(jù)庫的特別感知和修改。
?
高兼容
我們在一套OceanBase集群上同時為您提供兩套生態(tài),一套是Oracle生態(tài),一套是MySQL生態(tài),有效地降低業(yè)務遷移改造的成本。同時我們和國內(nèi)主流的操作系統(tǒng)、芯片也都做了互認的支持,可以有效滿足技術(shù)供應鏈安全的需求。
多租戶
多租戶就是在一個OceanBase集群上,可以建立很多個租戶,每個租戶對應一個Oracle實例或者是MySQL實例。可以用這個特性實現(xiàn)業(yè)務大集中,把以前全國一省一套的傳統(tǒng)集中式數(shù)據(jù)庫都集中在一個OceanBase數(shù)據(jù)庫集群那里。也可以做不同種類的小業(yè)務的集中,之前幾十個小的業(yè)務現(xiàn)在都集中在一個OceanBase集群里統(tǒng)一管理,這個特性不但可以有效利用集群資源,更可以有效降低 DBA的運維成本。
?
OceanBase產(chǎn)品定位與形態(tài)
OceanBase可以提供擁有世界級性能的OLTP引擎,同時也提供一個非常優(yōu)秀的OLAP引擎,這意味著輔以剛才提到的多租戶功能,您可以在一個OceanBase的集群里創(chuàng)建不同的實例,有的專門用于交易,有的專門用于分析,當然也可以創(chuàng)建一個大的實例,既做交易又做分析。OceanBase目前真正做到了一套HTAP引擎,它能夠同時支持交易和分析型業(yè)務。
?
OceanBase的容災架構(gòu),既支持經(jīng)典的主備容災方式,同時也支持基于Paxos協(xié)議的容災方式,我們支持同機房三副本,也支持同城三機房,甚至是兩地三中心,三地五中心,這些不同的容災級別可以完全滿足您的容災訴求。
?
關(guān)于部署模式,如果您希望和阿里云其他的優(yōu)秀產(chǎn)品,比如和金融級分布式中間件SOFA或者對象云存儲OSS一起使用,那么OceanBase可以在阿里云的專有云上為您輸出。如果您只想使用OceanBase,我們也可以以一個純License的方式提供給您,就在您的服務器上安裝我們的軟件,一樣可以獲得一個高可用、高擴展、高性能的集群。如果您希望只是購買一個公有云的服務,您可以在阿里云的公有云上購買一個OceanBase的RDS。這些不同選項可以無縫適配您各種不同的需求。
?
OceanBase在保險業(yè)的實踐
OceanBase在保險業(yè)的最佳實踐,一個很好的案例就是人保健康險。如果不熟悉的朋友可以打開您的手機支付寶,在上面搜“好醫(yī)保”就可以看到人保健康險的產(chǎn)品。人保健康利用了金融級分布式數(shù)據(jù)庫OceanBase和金融級分布式中間件SOFAStack解決了高并發(fā)保單處理能力速度慢的問題,目前每日平均出單量在15萬左右。
?
自2018年4月11日人保健康險好醫(yī)保產(chǎn)品成功上線后,截止到目前,好醫(yī)保已成為支付寶網(wǎng)紅保險產(chǎn)品。OceanBase上線中國人保健康以后,取得了顯著的收益:
?
處理能力提升了上千倍,并可根據(jù)業(yè)務情況動態(tài)擴容
2018款好醫(yī)保住院醫(yī)療保險,每天1萬單的日結(jié)文件,處理速度從以前的4小時縮短至6分鐘
新產(chǎn)品上線時間縮短80%以上,從原來的數(shù)周縮短至數(shù)天
采用多種協(xié)議轉(zhuǎn)換和標準化對接流程,使外部渠道接入效率提升6倍,支持第三方業(yè)務快速拓展
?
謝謝大家聽完我的匯報,期待著未來我們可以用OceanBase數(shù)據(jù)庫更好地服務于保險行業(yè),和各位好朋友一起打造面向未來的保險業(yè)的核心業(yè)務系統(tǒng)。
-?END?-
附:OceanBase發(fā)展歷程
OceanBase 數(shù)據(jù)庫是阿里巴巴和螞蟻金服不基于任何開源產(chǎn)品,完全自研的原生分布式關(guān)系數(shù)據(jù)庫軟件,在普通硬件上實現(xiàn)金融級高可用,首創(chuàng)“三地五中心”城市級故障自動無損容災新標準,具備卓越的水平擴展能力,全球首家通過 TPC-C 標準測試的分布式數(shù)據(jù)庫,單集群規(guī)模超過 1500?節(jié)點。產(chǎn)品具有云原生、強一致性、高度兼容 Oracle/MySQL 等特性, 承擔支付寶 100%?核心鏈路,在國內(nèi)幾十家銀行、保險公司等金融客戶的核心系統(tǒng)中穩(wěn)定運行。?
2011年:OceanBase 0.1版本發(fā)布,并應用在淘寶收藏夾。
2014年:OceanBase 0.5版本發(fā)布,引入Paxos協(xié)議保證主庫故障不丟數(shù)據(jù),處理當年雙11的10%交易數(shù)據(jù)鏈。
2015年:OceanBase 0.5版本在支付寶的交易庫和支付庫上線,同年OceanBase上線網(wǎng)商銀行,成為全球首個應用在金融核心業(yè)務系統(tǒng)的分布式關(guān)系數(shù)據(jù)庫。OceanBase在當年雙11處理100%交易數(shù)據(jù)鏈和50%支付數(shù)據(jù)鏈。
2016年:OceanBase 1.0版本在支付寶賬務系統(tǒng)上線,支撐當年雙11的12萬筆/秒的支付峰值。
2017年:OceanBase發(fā)布1.4版本,增加轉(zhuǎn)儲功能、層次查詢功能。在當年雙11里,包括整個賬務庫在內(nèi)的全部核心系統(tǒng)都100%運行在OceanBase上,創(chuàng)造了4200萬次/秒數(shù)據(jù)庫處理峰值的紀錄。
2018年:OceanBase 2.0版本發(fā)布,支持MySQL/Oracle雙兼容模式,是第一款支持存儲過程的原生分布式數(shù)據(jù)庫;在OLTP場景性能較1.4版本提升50%以上,存儲成本下降30%。
2019年:OceanBase2.2版本發(fā)布,在TPC-C測試中跑贏Oracle一舉奪冠,并在雙11里達到6100萬筆/秒數(shù)據(jù)處理峰值。
2020年,第二次參加了TPC-C測試, 達到了7.07億tpmC,跑出了接近去年12倍的成績,再次問鼎TPC-C榜首。
2020年3月,OceanBase正式通過阿里云向全球開放,企業(yè)可在云上獲得“支付寶同款”的世界頂級數(shù)據(jù)庫處理能力。
2020年6月,OceanBase正式獨立成公司,胡曉明任董事長。
猜你喜歡
工行高級經(jīng)理林承軍:工行基于 MySQL 構(gòu)建分布式架構(gòu)的轉(zhuǎn)型之路2020-09-02
平安銀行吳建峰:RocketMQ 在銀行的應用和實踐2020-09-01
阿里高級技術(shù)專家張建飛:應用架構(gòu)分離業(yè)務邏輯和技術(shù)細節(jié)之道2020-08-31
知道創(chuàng)宇總監(jiān)姚昌林:敏捷開發(fā)-如何打破研發(fā)交付過程中的“墻”2020-08-28
微博技術(shù)專家陳波:百億級訪問量的應用如何做緩存架構(gòu)設(shè)計2020-08-27
天弘基金首席架構(gòu)師李鑫:微服務接口限流的算法及架構(gòu)實現(xiàn)2020-08-25
左耳朵耗子:程序員如何把控自己的職業(yè)?2020-08-22
阿里P9專家右軍:大話軟件質(zhì)量穩(wěn)定性2020-08-03
史海峰:構(gòu)建產(chǎn)業(yè)互聯(lián)網(wǎng)金融系統(tǒng)的正確姿勢2020-08-02
阿里合伙人程立:阿里15年,我撕掉了身上兩個標簽2020-08-01
? ?END ? ?? #接力技術(shù),鏈接價值# 點分享點點贊點在看總結(jié)
以上是生活随笔為你收集整理的蚂蚁集团高级架构师郭援非:分布式数据库是金融机构数字化转型的最佳路径...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大一java图书馆管理系统课程设计
- 下一篇: 大厂面试官必问的 MySQL 索引调优等