NoSql數(shù)據(jù)庫作為數(shù)據(jù)庫市場最重要的組成之一,它的一舉一動都影響著成千上萬的企業(yè)。本專場邀請了行業(yè)頂級的NOSQL核心成員與大家共同展望NoSQL數(shù)據(jù)庫的未來,
阿里巴巴、MongoDB、redisson、斗魚等公司的技術(shù)大咖與大家共同分享了阿里云NoSQL數(shù)據(jù)庫的企業(yè)級特性及行業(yè)解決方案。
Redis & MongoDB云數(shù)據(jù)庫技術(shù)剖析
阿里云智能事業(yè)群數(shù)據(jù)庫產(chǎn)品事業(yè)部技術(shù)總監(jiān),MongoDB中國用戶組杭州用戶會(葉翔)為大家深度剖析了Redis和MongoDB云數(shù)據(jù)庫的技術(shù)。
Redis企業(yè)級數(shù)據(jù)庫服務(wù)Redis作為企業(yè)級數(shù)據(jù)庫需要關(guān)注四個方面:
? 分布式:需要滿足企業(yè)快速成長和降低成本的需要,實(shí)現(xiàn)彈性擴(kuò)容,以及從主從模式變?yōu)榧耗J健?
? 兼容性:兼容性是永恒的話題,即使無法做到100%一致,但需要無限接近。
? 安全審計(jì):安全在云環(huán)境中越來越重要,Redis開源版的安全審計(jì)能力比較薄弱,阿里云Redis對于這一點(diǎn)進(jìn)行了加強(qiáng)。
? 數(shù)據(jù)同步:需要能夠支持混合云部署,使得第三方云廠商、IDC與阿里云實(shí)現(xiàn)互通,以及數(shù)據(jù)遷移和轉(zhuǎn)換,滿足客戶上云或者下云的靈活決策。
Redis原生的Cluster架構(gòu)采用了Gossip協(xié)議實(shí)現(xiàn)路由表的同步,但這種架構(gòu)在社區(qū)以及企業(yè)中并沒有快速流行起來。雖然其有無中心架構(gòu)、組件依賴少等優(yōu)點(diǎn),但也存在很多問題,如運(yùn)維困難,路由存在不確定性,需要依賴Smart Client,并且不支持Multi-Key以及從主從模式遷移到集群模式,進(jìn)而造成升級困難。
為了解決上述問題,阿里云Redis數(shù)據(jù)庫沒有采用Gossip協(xié)議,而是引入了新的兩個組件:Proxy和Config Server。阿里云Redis采用了配置中心對于路由表信息進(jìn)行管理,可以通過Config Server進(jìn)行智能化調(diào)度,Proxy則能夠兼容非Smart Client,支持Multi-Key,并能夠?qū)崿F(xiàn)流量管理以及讀寫分離等。Proxy和Config Server雖然帶來了架構(gòu)的復(fù)雜性,但管理大規(guī)模復(fù)雜架構(gòu)正是云廠商所擅長的。此外,這兩個新組件所造成的額外成本也會被削平。通過這樣的云服務(wù)架構(gòu)使得用戶能夠?qū)edis從主從架構(gòu)無縫遷移到集群版本。
隨著Redis Cluster云服務(wù)架構(gòu)的延伸,出現(xiàn)了一個新概念——Redis云數(shù)據(jù)庫企業(yè)分布式矩陣。這個矩陣能從縱向和橫向進(jìn)行擴(kuò)展,縱向能夠隨著Shard的添加進(jìn)行分片,從而實(shí)現(xiàn)彈性擴(kuò)展;橫向則能夠?qū)崿F(xiàn)讀寫分離,并且做了Group分組隔離。全局來看,還支持Memcache和Redis雙協(xié)議,并且能實(shí)現(xiàn)集群、主備之間的平滑切換。
阿里云Redis的Proxy引入了Connection Session的概念,能夠?qū)τ贑onnection實(shí)現(xiàn)更細(xì)粒度的管理,并且通過連接池實(shí)現(xiàn)了長連接復(fù)用,不僅能夠兼容多種協(xié)議,并通過C語言高性能代碼也提升了短連接的性能。阿里云Redis的Proxy還具有熱升級能力,能保證在服務(wù)不間斷的情況下升級版本。
阿里云Redis在整個數(shù)據(jù)鏈路上進(jìn)行了逐層加密處理,支持了SSL、白名單、權(quán)限管理以及關(guān)鍵命令的禁用和審計(jì)等,增強(qiáng)了Redis的安全審計(jì)能力。Redis還提供了一些免費(fèi)的開源工具,如同步工具RedisShake以及數(shù)據(jù)校驗(yàn)工具RedisFullCheck等。
而Redis作為內(nèi)存型的緩存服務(wù)也存在很多挑戰(zhàn),比如容量受限,成本較高以及持久化能力弱等?;谝陨蠁栴},阿里云提供了混合存儲的Redis版本,其目的在于為用戶提供持久化、可安全存儲的Redis服務(wù)。其實(shí)現(xiàn)依賴于底層的RocksDB,通過不斷同步冷熱Key,使得內(nèi)存處于可控范圍之內(nèi)。
MongoDB企業(yè)級數(shù)據(jù)庫服務(wù)
MongoDB作為企業(yè)級數(shù)據(jù)庫需要關(guān)注四個方面,即安全審計(jì)、備份恢復(fù)、數(shù)據(jù)同步以及彈性伸縮。MongoDB的安全審計(jì)與Redis基本一致,進(jìn)一步增加了TDE加密。MongoDB增加了物理備份,使得備份和恢復(fù)效率都有了大幅度提升,并且通過增量備份能力使得數(shù)據(jù)能夠恢復(fù)到任意時間點(diǎn)。此外,在備份的基礎(chǔ)之上,阿里云MongoDB還提供了備份驗(yàn)證能力。
阿里云MongoDB還提供了診斷分析能力,并提供了MongoShake工具對數(shù)據(jù)進(jìn)行同步。阿里云MongoDB基于RocksDB引擎實(shí)現(xiàn)了共享存儲解決方案,可以實(shí)現(xiàn)存儲彈性伸縮,秒級添加只讀節(jié)點(diǎn),并解決了oplog全局鎖問題。當(dāng)然,這樣的方案也面對著幾點(diǎn)挑戰(zhàn),如與WiredTiger的兼容性問題;Compaction帶來的性能抖動;以及共享存儲延遲穩(wěn)定性。
基于MongoDB的數(shù)據(jù)中臺技術(shù)實(shí)現(xiàn)
MongoDB大中國區(qū)首席架構(gòu)師唐建法為大家介紹了基于MongoDB的數(shù)據(jù)中臺技術(shù)實(shí)現(xiàn)。
如果企業(yè)業(yè)務(wù)需要對接不同的客戶數(shù)據(jù),而這些數(shù)據(jù)的結(jié)構(gòu)、類型各不相同,可能需要花費(fèi)數(shù)周甚至數(shù)月。很多已有的解決方案就是實(shí)現(xiàn)數(shù)據(jù)統(tǒng)一平臺,將所有數(shù)據(jù)通過ETL抽取到數(shù)據(jù)平臺上,這種方式的共性是“T+1”的方式批量采集匯總,做成數(shù)據(jù)集,以交互方式提供下載。但這種方式存在著平臺數(shù)據(jù)滯后、響應(yīng)速度慢、交互方式粗糙等問題。
數(shù)據(jù)中臺從技術(shù)的角度進(jìn)行定義就是“數(shù)據(jù)統(tǒng)一平臺+數(shù)據(jù)即服務(wù)能力”。數(shù)據(jù)來源于業(yè)務(wù),需要按照“T+0”方式采集,提供及時的數(shù)據(jù)。數(shù)據(jù)需要以API的服務(wù)化方式交付出去,而非打包。這使得數(shù)據(jù)中臺能夠?qū)ζ髽I(yè)賴以生存的操作型系統(tǒng)提供支持,相比于分析型業(yè)務(wù),操作型業(yè)務(wù)更加核心,更加能夠提高企業(yè)競爭力,這也是數(shù)據(jù)中臺火爆的原因。
數(shù)據(jù)中臺的定義就是包含企業(yè)實(shí)時全域數(shù)據(jù)的,主要面向操作型業(yè)務(wù)應(yīng)用為主的數(shù)據(jù)服務(wù)技術(shù)平臺。其概念起源自國內(nèi),存在眾多流派,眾說紛紜。咨詢公司說數(shù)據(jù)中臺是一種組織架構(gòu)的轉(zhuǎn)變,方案提供商則說數(shù)據(jù)中臺是像Hadoop一樣的技術(shù)平臺產(chǎn)品,不同的組織有不同的出發(fā)點(diǎn)。
中國97%小微企業(yè)與數(shù)據(jù)中臺基本不相關(guān)。腰部占3%的120萬家大中型企業(yè),可能有很多的開發(fā)人員但沒有數(shù)據(jù)專家,另外還有少部分頭部企業(yè)。對于腰部的大中企業(yè)而言,系統(tǒng)可能不多,而數(shù)據(jù)團(tuán)隊(duì)基本沒有,無法快速構(gòu)建完善的數(shù)據(jù)中臺,但是數(shù)據(jù)孤島的痛點(diǎn)、數(shù)據(jù)打通以及快速開發(fā)的需求卻是真實(shí)存在的。這些企業(yè)可以選用技術(shù)型架構(gòu),具體需要考慮的能力包括數(shù)據(jù)匯聚、數(shù)據(jù)治理以及建模、數(shù)據(jù)API服務(wù),以及最關(guān)鍵的存儲、海量、多模和高性能。
RDBMS、MPP、Hadoop、NoSQL以及NewSQL數(shù)據(jù)技術(shù)各有長短板,在構(gòu)建中臺時也可以做一些參考,企業(yè)需要根據(jù)自身實(shí)際情況進(jìn)行考量。
之前,MongoDB用于大數(shù)據(jù)離線分析并不是很好的選擇,更多地是將其用于業(yè)務(wù)場景。而數(shù)據(jù)中臺面向的就是業(yè)務(wù)應(yīng)用場景,因此MongoDB成為了一個不錯的選擇,其具有較強(qiáng)的橫向自動擴(kuò)展能力,支持多模多態(tài),并且API友好。此外,基于MongoDB實(shí)現(xiàn)建模所需要的工作遠(yuǎn)少于傳統(tǒng)方式,能夠降低成本。
此外,MongoDB還具有數(shù)據(jù)采集、可視化建模、無代碼化API、數(shù)據(jù)可視化等數(shù)據(jù)中臺構(gòu)建所必須的能力。
如下圖所示的是較為完整的MongoDB數(shù)據(jù)中臺解決方案參考架構(gòu),從下到上依次是采集、存儲處理以及數(shù)據(jù)服務(wù)三層。
基于MongoDB構(gòu)建數(shù)據(jù)中臺具有這樣幾個核心優(yōu)勢,即無縫橫向擴(kuò)展能力、多類型結(jié)構(gòu)數(shù)據(jù)模型、邏輯模型即存儲模型、異構(gòu)實(shí)時數(shù)據(jù)庫同步能力、無代碼快速API發(fā)布能力以及簡單、輕量和快速。
圖數(shù)據(jù)庫GDB的設(shè)計(jì)與實(shí)踐
阿里巴巴資深技術(shù)專家朱國云(宗岱)為大家分享了阿里巴巴圖數(shù)據(jù)庫GDB的設(shè)計(jì)與實(shí)踐。
什么是圖數(shù)據(jù)庫
圖數(shù)據(jù)庫是針對于圖結(jié)構(gòu)設(shè)計(jì)的數(shù)據(jù)庫,而非圖片數(shù)據(jù)庫。什么是圖結(jié)構(gòu)呢?這是以社交網(wǎng)絡(luò)模型為例介紹,該模型中存在人與人、人與論壇、人與帖子、帖子與論壇之間的關(guān)系,人、論壇、帖子就屬于圖中的點(diǎn)(即Vertex),點(diǎn)之間的關(guān)系就稱之為邊(即Edge),在點(diǎn)和邊上會有一些屬性(即Property)。
如今,一些優(yōu)秀的社交應(yīng)用會將多維數(shù)據(jù)存儲到統(tǒng)一的圖空間中來,進(jìn)行存儲、查詢和分析,為用戶帶來更好的體驗(yàn)。近年來,數(shù)據(jù)量越來越大的同時,數(shù)據(jù)維度也逐漸增多,圖數(shù)據(jù)庫就是在這種背景下誕生的。
圖數(shù)據(jù)庫作為近年來數(shù)據(jù)庫領(lǐng)域中發(fā)展最快的一類,與關(guān)系型數(shù)據(jù)庫存在哪些差別呢?通常情況下,關(guān)系型數(shù)據(jù)庫中需要通過建七八張表才能做到的模型,圖數(shù)據(jù)庫能夠更加直觀、自然地表現(xiàn)出來。此外,圖數(shù)據(jù)庫做關(guān)聯(lián)查詢的速度更快,還能夠提供更多探索發(fā)現(xiàn)的能力。
前面提到的是屬性圖模型,在圖數(shù)據(jù)領(lǐng)域還有一種RDF模型。兩者的主要區(qū)別在于RDF的點(diǎn)和邊上不可以有屬性。
圖數(shù)據(jù)庫發(fā)展速度很快,因此種類也是特別多,主要可以分成四類,即知識圖/RDF、分析圖、圖數(shù)據(jù)庫、多模型圖數(shù)據(jù)庫。這些圖數(shù)據(jù)庫系統(tǒng)使用的主流查詢語言大致有三類,即Neo4j主推的最早使用類SQL查詢語言的Cypher、用于RDF上的描述語言SPARQL和目前支持最廣泛的基于屬性圖的查詢語言Gremlin。
什么是圖數(shù)據(jù)庫GDB
GDB是一種圖數(shù)據(jù)庫,其主要處理高度連接數(shù)據(jù)的存儲和查詢,其支持了屬性圖模型和開源的TinkerPop Gremlin查詢語言。與其他數(shù)據(jù)庫不同的是:GDB是云原生數(shù)據(jù)庫,從一開始就建設(shè)在阿里云基礎(chǔ)設(shè)施之上,因此能夠做到彈性、實(shí)時和高可靠。
GDB脫胎于Tair Service中的TairGraph 子系統(tǒng),后來其孵化出來,并放到阿里云上來專注地解決高度連接數(shù)據(jù)場景中的問題。基于Tair 10年的技術(shù)基礎(chǔ),GDB實(shí)現(xiàn)了高度優(yōu)化的自研引擎,能夠?qū)崿F(xiàn)實(shí)時更新和秒級查詢,并且完整地支持ACID事務(wù),并通過多副本保障高可靠。此外,還做到了服務(wù)高可用,能夠?qū)崿F(xiàn)節(jié)點(diǎn)故障迅速轉(zhuǎn)移;易運(yùn)維,提供了開箱即用的能力;可視化,更利于分析數(shù)據(jù)的內(nèi)在關(guān)系。
在架構(gòu)層面,GDB為客戶提供的是獨(dú)享專屬實(shí)例,這意味著資源獨(dú)立,無須擔(dān)心搶占問題。HA方面采用了最經(jīng)典主備架構(gòu),并提供只讀節(jié)點(diǎn)來提升實(shí)時查詢能力。GDB支持了Gremlin開源的TinkerPop SDK,為了實(shí)現(xiàn)每秒百萬級點(diǎn)邊過濾,GDB定制了專屬的圖友好數(shù)據(jù)庫引擎,并在查詢優(yōu)化和并行執(zhí)行等方面做了大量優(yōu)化,還支持了事務(wù)和自動索引。在數(shù)據(jù)通道部分,GDB還提供了多種數(shù)據(jù)源的高效導(dǎo)入支持。
GDB的場景和案例
如今,GDB在社交網(wǎng)絡(luò)、金融欺詐檢測、實(shí)時推薦引擎、知識圖譜以及網(wǎng)絡(luò)/IT運(yùn)營等場景中得到廣泛應(yīng)用,而且這些場景往往交織在一起。使用GDB能夠?qū)⒅捌x線的場景做到實(shí)時或者準(zhǔn)實(shí)時。
總結(jié)而言,在數(shù)據(jù)維度越來越多、數(shù)據(jù)相互關(guān)聯(lián)越來越緊密的今天,GDB提供了一種有效的圖存儲方式,能夠?qū)⒍嗑S數(shù)據(jù)很好地連接起來,并通過圖查詢、圖算法把數(shù)據(jù)隱藏的價值實(shí)時地、智能地挖掘出來。
從Java走向云原生,Redisson不停地探索
Redisson聯(lián)合創(chuàng)始人顧睿為大家分享了Redisson從Java走向云原生的探索之路。
Redisson是架設(shè)在Redis基礎(chǔ)上的一個Java駐內(nèi)存數(shù)據(jù)網(wǎng)格。Redisson以Java接口方式而非命令的形式提供給大家,使用非常簡單。其優(yōu)勢在于上手容易,只要能夠使用Java基本就能夠使用Redisson。此外,Redisson在設(shè)計(jì)時規(guī)避了多線程的問題,采用了線程安全的設(shè)計(jì),同時引入了線程池和連接池的管理,在同步和異步的場景中都能選到適合的方式。
除了使用簡單外,Redisson在功能上也提供了多種選擇,能夠支持31種分布式集合、14種分布式對象、8種分布式鎖和分布式同步器以及5種分布式服務(wù)。
Redisson的架構(gòu)主要分為兩大塊,包含Redisson客戶端的連接管理、協(xié)議解析在內(nèi)的基本功能和包括分布式結(jié)構(gòu)、分布式中間件以及第三方功能支持在內(nèi)的高級功能。
從Redisson架構(gòu)角度來看,似乎和Redis的理念相沖突。Redis設(shè)計(jì)理念強(qiáng)調(diào)簡單,而Redisson設(shè)計(jì)卻比較復(fù)雜;Redis提供了9種數(shù)據(jù)結(jié)構(gòu),界限清晰,而Redisson提供了約60種,界限比較模糊;Redis以命令形式面向用戶,而Redisson卻以Java API形式面向用戶??此品值罁P(yáng)鑣,實(shí)則殊途同歸,都是為了將復(fù)雜隱藏起來,將簡單的使用方式提供給用戶。
只支持Java是Redisson的優(yōu)點(diǎn),也是缺點(diǎn)。Java是Redisson的一個牢籠,這對于應(yīng)用程序開發(fā)者而言是優(yōu)勢,而對于程序庫開發(fā)者而言就是劣勢。因此,Redisson一直在思考如何走出困境,擁抱其他的生態(tài)。
2016年,Redisson首先嘗試了使用Vert.x框架,Vert.x的特點(diǎn)是集群運(yùn)行環(huán)境、多語言交互性和基于成熟技術(shù),并且Vert.x對開發(fā)者的限制比較少。因此,Redisson做了相關(guān)的實(shí)驗(yàn),實(shí)現(xiàn)了Redisson在其他語言中的運(yùn)行。但是這種方案學(xué)習(xí)成本非常大,而實(shí)際收益卻不高。
2018年,Redisson注意到ORACLE Labs推出的GraalVM,GraalVM的底層是Java運(yùn)行層,包括GraalVM和SubstrateVM,可以讓其他語言都能夠編譯融合并放入JVM中執(zhí)行,同時保證相互溝通的橋梁。SubstrateVM是最吸引Redisson的點(diǎn),它可以理解為用Java編寫的嵌入式虛擬機(jī),使得真正的跨平臺和跨語言成為可能。
于是,Redisson開始了“逃跑之路”,實(shí)現(xiàn)了redisson-native。對于Java、Java+Warm UP以及Native三種方式的性能進(jìn)行對比,能夠看出redisson-native的性能具有明顯的優(yōu)勢。
因此,這說明借助SubstrateVM逃離Java是非常好的解決方案,無需考慮JNI等相關(guān)問題,大部分操作只需要Java即可完成,學(xué)習(xí)成本較低,并且無需安裝獨(dú)立的JVM,生成文件也較小,云原生情況下性能較高,并且C調(diào)用非常簡單。延伸開去,可以將Redisson帶入到原生的二進(jìn)制狀態(tài)并進(jìn)行二次封裝,實(shí)現(xiàn)遍地開花。
基于企業(yè)級HBase的大數(shù)據(jù)存儲與處理
阿里云智能事業(yè)群數(shù)據(jù)庫產(chǎn)品事業(yè)部技術(shù)總監(jiān),Apache HBase PMC沈春輝(天梧)為大家分享了基于企業(yè)級HBase的大數(shù)據(jù)存儲與處理。
進(jìn)入大數(shù)據(jù)時代,數(shù)據(jù)量越來越多,數(shù)據(jù)種類也越來越豐富。數(shù)據(jù)量多這一點(diǎn)容易理解,而數(shù)據(jù)種類豐富則可以從三個維度來看:從靜態(tài)維度,如今能夠用數(shù)字化設(shè)備越來越多;從動態(tài)維度,設(shè)備、服務(wù)的運(yùn)行狀態(tài)越來越多;此外,還有數(shù)據(jù)再加工又產(chǎn)生了新數(shù)據(jù),使得數(shù)據(jù)變得無窮無盡。面對這么多數(shù)量和種類的數(shù)據(jù),如果沒有價值就都是廢墟。回顧這十年,大家對數(shù)據(jù)價值層面的認(rèn)知越來越強(qiáng)烈,數(shù)據(jù)也越來越多地應(yīng)用到生活中的各個場景。
隨著對數(shù)據(jù)的應(yīng)用,系統(tǒng)會面臨很多挑戰(zhàn)。大數(shù)據(jù)提出了“4V”,具體對于開發(fā)者而言,數(shù)據(jù)體量非常大意味著系統(tǒng)需要高擴(kuò)展性;數(shù)據(jù)種類非常豐富意味著系統(tǒng)需要具有高靈活性,能夠很好承載隨時隨地產(chǎn)生的新數(shù)據(jù)種類;數(shù)據(jù)時效性意味著系統(tǒng)具有高實(shí)時性,具有數(shù)據(jù)在線化能力;數(shù)據(jù)價值則意味著需要能夠商業(yè)化,系統(tǒng)需要降低數(shù)據(jù)的存儲和計(jì)算成本。
十多年前,Google首先遇到大數(shù)據(jù)問題,因此發(fā)表了Big Table論文。而HBase則是基于該論文設(shè)計(jì)的高可靠、高性能、可伸縮的開源大數(shù)據(jù)NoSQL系統(tǒng)。HBase放棄了對于關(guān)系型數(shù)據(jù)庫事務(wù)的支持,重點(diǎn)構(gòu)建擴(kuò)展性能力、靈活性能力、實(shí)時響應(yīng)能力以及對大體量數(shù)據(jù)存儲低成本的能力。
阿里巴巴從2010年開始調(diào)研HBase,如今已經(jīng)走過了近十個年頭。隨著這十年的逐步探索,阿里巴巴也豐富了HBase的使用場景,如消息,訂單,F(xiàn)eed流,監(jiān)控,大屏,軌跡,設(shè)備狀態(tài),AI存儲,推薦,搜索,BI報表等。阿里巴巴自己使用HBase已經(jīng)達(dá)到了非常大的體量和規(guī)模,也在產(chǎn)品上有了很多積累和沉淀,形成了如今云HBase+X-Pack的架構(gòu)。單獨(dú)依靠HBase數(shù)據(jù)庫無法解決業(yè)務(wù)場景下的復(fù)雜問題,因此X-Pack基于云HBase在計(jì)算、檢索、多模型上進(jìn)行了擴(kuò)展,包含了Spark、Phoenix、Solr以及OpenTSDB等,形成了穩(wěn)定、易用、低成本的一站式大數(shù)據(jù)NoSQL平臺。
云HBase+X-Pack架構(gòu)實(shí)現(xiàn)了低成本的數(shù)據(jù)存儲,將HBase運(yùn)行在OSS上面,并且讓整體接口模型復(fù)用HDFS能力。并且同時克服了OSS在面向文件場景下的問題,將原本面向?qū)ο蟮拇鎯ο到y(tǒng)當(dāng)做類似云盤來使用,使得存儲成本降低3到7倍。此外,還基于HBase做到了一體化冷熱分離,并使得業(yè)務(wù)無感知。
除了低成本存儲之外,阿里云HBase還投入了大量的精力來優(yōu)化性能。相比開源版本,阿里云HBase在各個性能指標(biāo)上都有較大的提升。在這背后是不斷的優(yōu)化,如原本將基于HDFS Pipeline日志三副本轉(zhuǎn)變向LLC機(jī)制,并將串行改為并行;將原本串行獲取鎖的方式變?yōu)椴⑿校徊⑶覍?shí)現(xiàn)了10倍的Java GC優(yōu)化。
最后一點(diǎn),HBase屬于大數(shù)據(jù)領(lǐng)域,必須結(jié)合很多組件,因此易用性也是大家最為迫切需要的。阿里云HBase實(shí)現(xiàn)了HBase和Spark的數(shù)據(jù)聯(lián)動以及在線和離線的高效融合。此外,阿里內(nèi)部也提供了一套易用的數(shù)據(jù)遷移系統(tǒng),能夠?qū)崿F(xiàn)平滑在線搬遷。
無論是從穩(wěn)定性、易用性還是性能和成本上來說,阿里云HBase都有很大的提升。未來,阿里云HBase還會通過共享塊存儲等技術(shù)進(jìn)一步降低成本,也將會推出Serverless能力,并且會通過新硬件來加速計(jì)算,降低成本。
斗魚直播從0到1混合云架構(gòu)演進(jìn)
斗魚技術(shù)總監(jiān)馬勇為大家分享了斗魚直播的混合云架構(gòu)演進(jìn)之路。
斗魚直播成立于2014年,是以游戲賽事為主的直播平臺,平臺簽約國內(nèi)Top100主播約50位,覆蓋游戲主播Top10中8位,月活達(dá)1.5億,2019年Q1付費(fèi)用戶約600萬。斗魚主要有三條業(yè)務(wù)特點(diǎn):頭部主播熱點(diǎn)效應(yīng),流量水位波動較大,以及在線互動場景較多。目前的技術(shù)現(xiàn)狀是每天業(yè)務(wù)調(diào)用量在千億左右,Redis實(shí)例集群達(dá)2000以上,單個接口QPS達(dá)20萬以上。
斗魚直播從2016年開始保持每年25%以上的月活增長,目前面對的技術(shù)困境主要有三點(diǎn):(1)“炸魚”,頭部流量拖死全站房間;(2)
服務(wù)器資源利用率低,日常水位大量服務(wù)器閑置;(3)Redis維護(hù)和容災(zāi)成本高。
斗魚混合云架構(gòu)歷程主要分為三個階段,在探索期做了獨(dú)立業(yè)務(wù)上云的嘗試;在成長期通過IDC+云的方式實(shí)現(xiàn)了橫向流量擴(kuò)容;在成熟期完成橫向擴(kuò)容之后實(shí)現(xiàn)對資源的最大化利用。
探索期的主要背景是IDC硬件資源呈現(xiàn)為長期緊缺狀態(tài),研發(fā)支撐跟不上業(yè)務(wù)發(fā)展,而公有云逐步成熟。因此在這一階段,斗魚嘗試性選取了廣告業(yè)務(wù)作為上云試點(diǎn),并且取得了較大收益,系統(tǒng)的吞吐量直線上升,依賴穩(wěn)定性顯著提升,計(jì)算成本也大幅下降。但是這一模式的適用范圍較窄,無法直接復(fù)制到其他業(yè)務(wù)場景,而且這一模式只適用于單一數(shù)據(jù)中心的情況,于是就進(jìn)入了成長期。
成長期的背景是需要解決IDC到公有云的數(shù)據(jù)通道構(gòu)建問題。針對這一問題,斗魚和阿里云共同構(gòu)建了RedisShake數(shù)據(jù)同步工具,支持了Redis全量、增量數(shù)據(jù)同步、支持云上、云下不同數(shù)據(jù)中心的同步,還支持秒級數(shù)據(jù)監(jiān)控。通過RedisFullCheck實(shí)現(xiàn)了數(shù)據(jù)多維度對比,基本能保證數(shù)據(jù)通路的數(shù)據(jù)一致性問題。這一階段的收益在于實(shí)現(xiàn)了單一機(jī)房到多機(jī)房的數(shù)據(jù)擴(kuò)展過程。這個階段存在存在兩點(diǎn)有待改進(jìn),即資源調(diào)度成本比較高和資源缺乏精細(xì)化運(yùn)營。
成熟期的主要優(yōu)化方向是職責(zé)分離和彈性伸縮,優(yōu)化方案包括四個方面,即流量分級、數(shù)據(jù)冷熱分離、彈性伸縮和流量調(diào)度。其中調(diào)度策略包括了手動調(diào)度、定時調(diào)度、資源消耗調(diào)度和Hook調(diào)度。
對于混合云架構(gòu)而言,斗魚也總結(jié)了三點(diǎn)經(jīng)驗(yàn):
? 充分合理評估:云上計(jì)算網(wǎng)絡(luò)與IDC差異較大,需要結(jié)合業(yè)務(wù)實(shí)際情況進(jìn)行測試,避免產(chǎn)生影響。
? 投入產(chǎn)出比:混合云架構(gòu)對資源冗余存在一定要求或者帶來一定負(fù)面影響。
? 延時問題:企業(yè)應(yīng)通過評估業(yè)務(wù)的重要性決定是否做混合云,雖然從數(shù)據(jù)中心到云有專線,但也存在一定延時。
Cassandra&X-Pack Spark云數(shù)據(jù)庫技術(shù)剖析
阿里云智能高級技術(shù)專家曹龍(封神)為大家剖析了Cassandra與X-Pack Spark云數(shù)據(jù)庫技術(shù)。
為什么選擇Cassandra呢?Cassandra是一種完全沒有中心的數(shù)據(jù)庫,其每個節(jié)點(diǎn)都是主節(jié)點(diǎn),如果Kill掉其中任何一個節(jié)點(diǎn)都不會影響集群的QPS以及延時。除了Cassandra使用的P2P-QUORUM機(jī)制之外,還有HA機(jī)制、Raft以及單內(nèi)存副本+共享存儲等機(jī)制,而只有Cassandra能夠做到幾乎沒有感知時間,因此Cassandra的Slogan就是“Always Online”。
Cassandra能夠?qū)崿F(xiàn)平滑擴(kuò)展,一方面可以增加節(jié)點(diǎn)數(shù)據(jù)量,甚至擴(kuò)展多個DC。另一方面在云上還可以增加內(nèi)存等。平滑擴(kuò)展是Cassandra的重要特性,其他數(shù)據(jù)庫往往難以做到。Cassandra還可以實(shí)現(xiàn)全球多DC,架構(gòu)師可以根據(jù)業(yè)務(wù)自由適配。
對于學(xué)習(xí)成本而言,Cassandra提供類似于SQL語句的CQL,會MySQL的DBA或者開發(fā)人員基本上一天之內(nèi)就能學(xué)會Cassandra。在安全方面,Cassandra和主流數(shù)據(jù)庫一樣提供了完善的認(rèn)證以及鑒權(quán)體系。在多語言方面,Cassandra采用了非Thrift方式,采用客戶端和服務(wù)端直連方式,并且支持主流的語言,并且具有良好的性能。最后一點(diǎn),就是運(yùn)維簡單,Cassandra整體只有一個進(jìn)程,沒有Proxy、HA以ZK等角色節(jié)點(diǎn)。
Cassandra具有很多功能,比較特別的就是其索引支持物化視圖、還支持SASI全文索引,并且集成了Lucene做更強(qiáng)的全文索引,以及支持CDC對接流式系統(tǒng)。
Cassandra的功能和生態(tài)比較豐富,其可以和其他組件進(jìn)行搭配,比如Spark、Kafka、ES、Lucene、RocksDB等。
Cassandra在寬表領(lǐng)域排名全球第一,即使在國內(nèi)缺乏宣傳的情況下排名也是靠前的。Cassandra的發(fā)展目前已經(jīng)經(jīng)過了十年,其將AWS的DynamoDB和Google的BigTable兩者的長處融合在一起形成的。阿里巴巴也在2019年公測并發(fā)布了阿里云Cassandra數(shù)據(jù)庫服務(wù),并且對原生的Cassandra進(jìn)行了多方面提升,比如實(shí)現(xiàn)了自動化運(yùn)維、兼容DynamoDB、全鏈路優(yōu)化性能提升100%等。
總結(jié)而言,云數(shù)據(jù)庫Cassandra版是在線可靠的NoSQL可調(diào)一致性的分布式數(shù)據(jù)庫服務(wù),支持類SQL語法CQL,提供強(qiáng)大的分布式索引能力,提供安全、多活容災(zāi)、監(jiān)控、備份恢復(fù)等企業(yè)級能力,兼容DynamoDB協(xié)議。
X-Pack Spark不僅僅支持Cassandra,還能夠支持HBase、Phoenix、RDS和MongoDB。X-Pack Spark不僅具有強(qiáng)大的連接能力和歸檔能力,還能夠通過ElasticNode降低計(jì)算和存儲成本。
Cassandra+Spark能夠應(yīng)用于非常廣泛的業(yè)務(wù)場景中,比如用戶畫像、Feed、小對象存儲以及推薦平臺等。
總結(jié)而言,將Spark與Cassandra的優(yōu)點(diǎn)結(jié)合在一起能夠滿足多種業(yè)務(wù)場景的需求,能夠?qū)崿F(xiàn)Always Online、擴(kuò)展性強(qiáng)、好用、功能和生態(tài)豐富以及Spark數(shù)據(jù)閉環(huán)。
本文為云棲社區(qū)原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。
網(wǎng)站欄目:云棲干貨回顧|行業(yè)頂級NoSQL成員坐陣,NoSQL數(shù)據(jù)庫專場重點(diǎn)解析!
瀏覽路徑:http://www.rwnh.cn/article38/igpdsp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、外貿(mào)建站、靜態(tài)網(wǎng)站、關(guān)鍵詞優(yōu)化、企業(yè)網(wǎng)站制作、搜索引擎優(yōu)化
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源:
創(chuàng)新互聯(lián)