1、基于金融行業的云數據庫實踐飛天技術匯金融行業應用架構的變遷互聯網分布式應用對數據庫挑戰Spring/Struts/SOAJ2EE/.NETWebLogic/WAS/MQOracle/DB2集中數據庫小機,X86,存儲微服務架構容器Swarm/K8S/MesosMySQL/Redis/HBase公有云/私有云/混合云可控發布,保守運維傳統金融架構DevOps/持續集成互聯網+分布式應用資源資源數據數據中間件中間件發布封裝發布封裝應用框架應用框架開發運維開發運維對數據庫的新要求分布式敏捷性低成本分布式容器化微服務金融互聯網創新需要什么樣的數據庫?自主可控:基于開放架構,基于開源的優化高可用:跨機房
2、容災,滿足金融級業務系統全天候對外提供穩定可靠的客戶服務高性能:互聯網+金融的創新業務所需的流量彈性支持云:私有云和公有云互通一致的體感,降低使用和運維難度易運維:大體量自動化、運維體系合規化要求(基線、環境適配、管理體系等)數據安全:審計&數據強一致性&多中心容災部署成本優化:IT總體擁有成本必須下降阿里云數據庫開放,多機房容災,強一致性,助力金融科技創新如今,阿里云數據庫產品已聚木成林關系型數據庫關系型數據庫MySQLMySQLSQL ServerSQL ServerPostgreSQLPostgreSQLPPASPPAS(高度兼容高度兼容Oracle)Oracle)POLARDBPOLA
3、RDBNoSQLNoSQL數據庫數據庫RedisRedisMongoDBMongoDBHBaseHBaseMemcacheMemcache混合分析數據庫混合分析數據庫HybridDB for MySQLHybridDB for MySQLHybridDB for HybridDB for PostgreSQLPostgreSQL搜索與時序數據庫搜索與時序數據庫OpenSearchOpenSearchElasticsearchElasticsearchHiTSDBHiTSDB數據庫服務與工具數據庫服務與工具DTSDTS智能顧問智能顧問DMSDMSRelational Database Servi
4、ceNoSQL Database ServiceHTAP DatabaseSearch and time-series DatabaseData Backup and MigrationApsaraDB Product Catalog基礎版高可用版金融版與云服務器一樣的成本IaaS的價格,PaaS的服務多項企業級功能,包括 讀寫分離實時升降配置數據加密SQL審計秒級 高頻監控版本不同,普惠相同從初創企業到金融巨擘的共同認可MySQL金融版內置讀寫分離主節點備節點備節點Raft讀寫分離讀(Read)寫(Write)Client讀/寫4/7層代理slaveslavemaster只讀只讀只讀完全兼容
5、MySQL*表*數據類型*函數/存儲過程*sql_mode*無成本遷移*免費熱遷移(DTS)數據強一致*節點故障*機房故障MySQL金融版產品特征規格規格 與與 性能性能6060核核 470G 3T 470G 3T4 4核核 16G 16GMySQL金融版產品規格MySQL金融版同城多機房容災主節點備節點備節點代理Client主節點新主庫備節點代理Client機房A機房B機房CFailover機房間的延遲帶來的性能損耗不到5%分布式高頻探測 網絡/硬件/OS/數據庫 多重監控 智能決策系統 數據一致性保護切換過程,對上層無感知:新連接直接到備節點 空閑的老連接,自動切換到備節點;事務中或運行中
6、的老連接,等待10s后切換到備節點,超時Kill。三機房部署災備切換機房A機房B機房C網關/代理(四層/七層)主:上海(三機房)災備:北京(單機房)主節點備節點備節點Raft協議,日志同步機房A機房B機房C網關/代理(四層/七層)主節點備節點機房ABinlog同步MySQL金融版兩地多中心用戶流量DTSDRCMQ金融級可靠性原理揭秘金融級可靠性原理揭秘數據復制的演進雙通道binlog復制拜占庭將軍問題與Raft一致性算法Raft in MySQL負責選主、控制復制關系 Flashback確保數據強一致.1.數據復制技術的演進MySQL的日志復制是異步的,也就是說主備庫客觀上存在延遲。雖然IO_
7、Thread傳輸日志的延遲(大部分所說的延遲都是指SQL_Thread Apply的延遲)小到幾乎可以忽略不計,但對數據安全性要求極高的場景下卻存在天然缺陷。除了延遲導致的日志丟失,當Master意外故障時,沒有來得及復制到備庫的日志是不會在新Master執行。但老Master恢復后,會對PendingBinlog執行Engine Commit。導致新老Master數據不一致。MySQL原生異步復制的問題永遠不知道備庫的數據是不是最新永遠不知道備庫的數據是不是最新異步復制(一主一備/一主多備)MySQL原生半同步復制的問題網絡故障時,半同步會降級成異步(可以設降級的延遲時間)網絡恢復后,從節點
8、異步復制追數據,直到追平后,提升成半同步復制因此,當主節點宕機時,無法判斷從庫當前是異步狀態,還是半同步狀態,不知道從庫數據是否追平。即:半同步狀態下,也不能確定備庫的數據是不是最新的。AliSQL改進:雙通道數據復制主備間有兩條數據復制通道:1.半同步復制通道只接收最新的binlog,不回放。網絡故障就放棄接收,恢復后不追數據,接收最新的binlog2.異步復制通道正常按異步復制邏輯拖取和回放binlog,保持備庫數據再現當主庫宕機時,雙通道模式可以確定性得知,備庫的數據是否跟主庫一致雙通道復制數據一致性判斷備庫數據一致,放心切換備庫數據不一致,根據不同SLA做出動作,即做出動作,即RTOR
9、TO優先時,可以優先時,可以切換;切換;RPORPO優先時,需人工做數優先時,需人工做數據恢復據恢復當主庫宕機時,備庫具有確定性狀態即:具有確定性狀態即:異步通道半同步半同步通道網絡故障區,放棄同步主庫宕機點時間備庫數據一致備庫數據一致1異步通道半同步半同步通道網絡故障區,放棄同步主庫宕機點時間備庫數據不一致備庫數據不一致可補償到一致可補償到一致2 2異步通道半同步半同步通道網絡故障區,放棄同步主庫宕機點時間備庫數據不一致備庫數據不一致無法補償無法補償3 32.拜占庭將軍問題與分布式一致性算法MasterMasterSlaveSlaveSlaveSlaveRaftRoleDatabase Ro
10、leStateTermExpiredLeaderMasterread-write1001170526 16:20:09FollowerSlaveread-only1001170526 16:20:09FollowerSlaveread-only1001170526 16:20:09這是節點的狀態,包含他們的角色,數據庫狀態,選舉的Term值,以及租約過期時間。角色 決定了他們的讀寫狀態,以及日志復制流向。Raft 分布式一致性協議MySQL金融版實現方式內核引入Raft分布式一致性算法底層維護了三個數據庫節點,一主兩備的復制拓撲結構意味著每個節點都是全量的數據,數據庫事務日志(Log)從主庫同
11、步復制到所有的備庫,當集群中超過半數的節點都寫入成功后,事務才能完成提交。雖然是同步復制,但由于是三個點,因此單個節點的故障不會影響到實例整體的可用性。這種設計的好處顯而易見,即在不損失可用性的情況下,通過較高的數據冗余度來換取更好的可靠性,同時支持跨機房的部署方式,具備機房容災能力。分布式一致性復制三節點強同步復制數據安全數據安全安全是根植于阿里云內核的原生功能事前 VPC專有網絡 IP白名單 防暴力破解 靈活賬號權限管理事中 SSL加密 TDE加密 攔截SQL注入攻擊事后 SQL審計 克隆實例全生命周期的安全體系,根植在阿里云飛天內核最底層。安全功能安全,是根植于內核的原生功能未來,已來未來,已來劃時代數據庫POLARDBPOLARDB兼容并包,大有風度100%向下兼容MySQL 5.664核,512G強大的計算節點性能 6倍 超越100TB極大存儲容量Cloud Native 產品設計1.計算與存儲分離3.一寫多讀 DB Server4.分布式共享存儲架構(Raft控制的共享存儲)POLARDB劃時代的數據庫產品架構2.RDMA遠程直接數據存取遠程直接數據存取放棄了基于放棄了基于binlogbinlog的邏輯復制,而是的邏輯復制,而是基于基于innodbinnodb的的redologredolog實現了物理復制實現了物理復制飛天技術匯