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