溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

云棲干貨回顧 | 行業(yè)頂級(jí)NoSQL成員坐陣,NoSQL數(shù)據(jù)庫(kù)專場(chǎng)重點(diǎn)解析!

發(fā)布時(shí)間:2020-08-11 16:28:03 來(lái)源:ITPUB博客 閱讀:182 作者:大濤學(xué)長(zhǎng) 欄目:數(shù)據(jù)庫(kù)
NoSQL數(shù)據(jù)庫(kù)作為數(shù)據(jù)庫(kù)市場(chǎng)最重要的組成之一,它的一舉一動(dòng)都影響著成千上萬(wàn)的企業(yè)。本專場(chǎng)邀請(qǐng)了行業(yè)頂級(jí)的NoSQL核心成員與大家共同展望NoSQL數(shù)據(jù)庫(kù)的未來(lái), 阿里巴巴、MongoDBRedisson、斗魚(yú)等公司的技術(shù)大咖與大家共同分享了阿里云NoSQL數(shù)據(jù)庫(kù)的企業(yè)級(jí)特性及行業(yè)解決方案。

Redis & MongoDB云數(shù)據(jù)庫(kù)技術(shù)剖析

阿里云智能事業(yè)群數(shù)據(jù)庫(kù)產(chǎn)品事業(yè)部技術(shù)總監(jiān),MongoDB中國(guó)用戶組杭州用戶會(huì)(葉翔)為大家深度剖析了Redis和MongoDB云數(shù)據(jù)庫(kù)的技術(shù)。
Redis企業(yè)級(jí)數(shù)據(jù)庫(kù)服務(wù)Redis作為企業(yè)級(jí)數(shù)據(jù)庫(kù)需要關(guān)注四個(gè)方面:
? 分布式:需要滿足企業(yè)快速成長(zhǎng)和降低成本的需要,實(shí)現(xiàn)彈性擴(kuò)容,以及從主從模式變?yōu)榧耗J健? ? 兼容性:兼容性是永恒的話題,即使無(wú)法做到100%一致,但需要無(wú)限接近。 ? 安全審計(jì):安全在云環(huán)境中越來(lái)越重要,Redis開(kāi)源版的安全審計(jì)能力比較薄弱,阿里云Redis對(duì)于這一點(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è)中并沒(méi)有快速流行起來(lái)。雖然其有無(wú)中心架構(gòu)、組件依賴少等優(yōu)點(diǎn),但也存在很多問(wèn)題,如運(yùn)維困難,路由存在不確定性,需要依賴Smart Client,并且不支持Multi-Key以及從主從模式遷移到集群模式,進(jìn)而造成升級(jí)困難。

為了解決上述問(wèn)題,阿里云Redis數(shù)據(jù)庫(kù)沒(méi)有采用Gossip協(xié)議,而是引入了新的兩個(gè)組件:Proxy和Config Server。阿里云Redis采用了配置中心對(duì)于路由表信息進(jìn)行管理,可以通過(guò)Config Server進(jìn)行智能化調(diào)度,Proxy則能夠兼容非Smart Client,支持Multi-Key,并能夠?qū)崿F(xiàn)流量管理以及讀寫(xiě)分離等。Proxy和Config Server雖然帶來(lái)了架構(gòu)的復(fù)雜性,但管理大規(guī)模復(fù)雜架構(gòu)正是云廠商所擅長(zhǎng)的。此外,這兩個(gè)新組件所造成的額外成本也會(huì)被削平。通過(guò)這樣的云服務(wù)架構(gòu)使得用戶能夠?qū)edis從主從架構(gòu)無(wú)縫遷移到集群版本。

隨著Redis Cluster云服務(wù)架構(gòu)的延伸,出現(xiàn)了一個(gè)新概念——Redis云數(shù)據(jù)庫(kù)企業(yè)分布式矩陣。這個(gè)矩陣能從縱向和橫向進(jìn)行擴(kuò)展,縱向能夠隨著Shard的添加進(jìn)行分片,從而實(shí)現(xiàn)彈性擴(kuò)展;橫向則能夠?qū)崿F(xiàn)讀寫(xiě)分離,并且做了Group分組隔離。全局來(lái)看,還支持Memcache和Redis雙協(xié)議,并且能實(shí)現(xiàn)集群、主備之間的平滑切換。
阿里云Redis的Proxy引入了Connection Session的概念,能夠?qū)τ贑onnection實(shí)現(xiàn)更細(xì)粒度的管理,并且通過(guò)連接池實(shí)現(xiàn)了長(zhǎng)連接復(fù)用,不僅能夠兼容多種協(xié)議,并通過(guò)C語(yǔ)言高性能代碼也提升了短連接的性能。阿里云Redis的Proxy還具有熱升級(jí)能力,能保證在服務(wù)不間斷的情況下升級(jí)版本。
阿里云Redis在整個(gè)數(shù)據(jù)鏈路上進(jìn)行了逐層加密處理,支持了SSL、白名單、權(quán)限管理以及關(guān)鍵命令的禁用和審計(jì)等,增強(qiáng)了Redis的安全審計(jì)能力。Redis還提供了一些免費(fèi)的開(kāi)源工具,如同步工具RedisShake以及數(shù)據(jù)校驗(yàn)工具RedisFullCheck等。
而Redis作為內(nèi)存型的緩存服務(wù)也存在很多挑戰(zhàn),比如容量受限,成本較高以及持久化能力弱等?;谝陨蠁?wèn)題,阿里云提供了混合存儲(chǔ)的Redis版本,其目的在于為用戶提供持久化、可安全存儲(chǔ)的Redis服務(wù)。其實(shí)現(xiàn)依賴于底層的RocksDB,通過(guò)不斷同步冷熱Key,使得內(nèi)存處于可控范圍之內(nèi)。

MongoDB企業(yè)級(jí)數(shù)據(jù)庫(kù)服務(wù)

MongoDB作為企業(yè)級(jí)數(shù)據(jù)庫(kù)需要關(guān)注四個(gè)方面,即安全審計(jì)、備份恢復(fù)、數(shù)據(jù)同步以及彈性伸縮。MongoDB的安全審計(jì)與Redis基本一致,進(jìn)一步增加了TDE加密。MongoDB增加了物理備份,使得備份和恢復(fù)效率都有了大幅度提升,并且通過(guò)增量備份能力使得數(shù)據(jù)能夠恢復(fù)到任意時(shí)間點(diǎn)。此外,在備份的基礎(chǔ)之上,阿里云MongoDB還提供了備份驗(yàn)證能力。

阿里云MongoDB還提供了診斷分析能力,并提供了MongoShake工具對(duì)數(shù)據(jù)進(jìn)行同步。阿里云MongoDB基于RocksDB引擎實(shí)現(xiàn)了共享存儲(chǔ)解決方案,可以實(shí)現(xiàn)存儲(chǔ)彈性伸縮,秒級(jí)添加只讀節(jié)點(diǎn),并解決了oplog全局鎖問(wèn)題。當(dāng)然,這樣的方案也面對(duì)著幾點(diǎn)挑戰(zhàn),如與WiredTiger的兼容性問(wèn)題;Compaction帶來(lái)的性能抖動(dòng);以及共享存儲(chǔ)延遲穩(wěn)定性。

基于MongoDB的數(shù)據(jù)中臺(tái)技術(shù)實(shí)現(xiàn)

MongoDB大中國(guó)區(qū)首席架構(gòu)師唐建法為大家介紹了基于MongoDB的數(shù)據(jù)中臺(tái)技術(shù)實(shí)現(xiàn)。
如果企業(yè)業(yè)務(wù)需要對(duì)接不同的客戶數(shù)據(jù),而這些數(shù)據(jù)的結(jié)構(gòu)、類型各不相同,可能需要花費(fèi)數(shù)周甚至數(shù)月。很多已有的解決方案就是實(shí)現(xiàn)數(shù)據(jù)統(tǒng)一平臺(tái),將所有數(shù)據(jù)通過(guò)ETL抽取到數(shù)據(jù)平臺(tái)上,這種方式的共性是“T+1”的方式批量采集匯總,做成數(shù)據(jù)集,以交互方式提供下載。但這種方式存在著平臺(tái)數(shù)據(jù)滯后、響應(yīng)速度慢、交互方式粗糙等問(wèn)題。
數(shù)據(jù)中臺(tái)從技術(shù)的角度進(jìn)行定義就是“數(shù)據(jù)統(tǒng)一平臺(tái)+數(shù)據(jù)即服務(wù)能力”。數(shù)據(jù)來(lái)源于業(yè)務(wù),需要按照“T+0”方式采集,提供及時(shí)的數(shù)據(jù)。數(shù)據(jù)需要以API的服務(wù)化方式交付出去,而非打包。這使得數(shù)據(jù)中臺(tái)能夠?qū)ζ髽I(yè)賴以生存的操作型系統(tǒng)提供支持,相比于分析型業(yè)務(wù),操作型業(yè)務(wù)更加核心,更加能夠提高企業(yè)競(jìng)爭(zhēng)力,這也是數(shù)據(jù)中臺(tái)火爆的原因。
數(shù)據(jù)中臺(tái)的定義就是包含企業(yè)實(shí)時(shí)全域數(shù)據(jù)的,主要面向操作型業(yè)務(wù)應(yīng)用為主的數(shù)據(jù)服務(wù)技術(shù)平臺(tái)。其概念起源自國(guó)內(nèi),存在眾多流派,眾說(shuō)紛紜。咨詢公司說(shuō)數(shù)據(jù)中臺(tái)是一種組織架構(gòu)的轉(zhuǎn)變,方案提供商則說(shuō)數(shù)據(jù)中臺(tái)是像Hadoop一樣的技術(shù)平臺(tái)產(chǎn)品,不同的組織有不同的出發(fā)點(diǎn)。
中國(guó)97%小微企業(yè)與數(shù)據(jù)中臺(tái)基本不相關(guān)。腰部占3%的120萬(wàn)家大中型企業(yè),可能有很多的開(kāi)發(fā)人員但沒(méi)有數(shù)據(jù)專家,另外還有少部分頭部企業(yè)。對(duì)于腰部的大中企業(yè)而言,系統(tǒng)可能不多,而數(shù)據(jù)團(tuán)隊(duì)基本沒(méi)有,無(wú)法快速構(gòu)建完善的數(shù)據(jù)中臺(tái),但是數(shù)據(jù)孤島的痛點(diǎn)、數(shù)據(jù)打通以及快速開(kāi)發(fā)的需求卻是真實(shí)存在的。這些企業(yè)可以選用技術(shù)型架構(gòu),具體需要考慮的能力包括數(shù)據(jù)匯聚、數(shù)據(jù)治理以及建模、數(shù)據(jù)API服務(wù),以及最關(guān)鍵的存儲(chǔ)、海量、多模和高性能。
RDBMS、MPP、Hadoop、NoSQL以及NewSQL數(shù)據(jù)技術(shù)各有長(zhǎng)短板,在構(gòu)建中臺(tái)時(shí)也可以做一些參考,企業(yè)需要根據(jù)自身實(shí)際情況進(jìn)行考量。

之前,MongoDB用于大數(shù)據(jù)離線分析并不是很好的選擇,更多地是將其用于業(yè)務(wù)場(chǎng)景。而數(shù)據(jù)中臺(tái)面向的就是業(yè)務(wù)應(yīng)用場(chǎng)景,因此MongoDB成為了一個(gè)不錯(cuò)的選擇,其具有較強(qiáng)的橫向自動(dòng)擴(kuò)展能力,支持多模多態(tài),并且API友好。此外,基于MongoDB實(shí)現(xiàn)建模所需要的工作遠(yuǎn)少于傳統(tǒng)方式,能夠降低成本。
此外,MongoDB還具有數(shù)據(jù)采集、可視化建模、無(wú)代碼化API、數(shù)據(jù)可視化等數(shù)據(jù)中臺(tái)構(gòu)建所必須的能力。
如下圖所示的是較為完整的MongoDB數(shù)據(jù)中臺(tái)解決方案參考架構(gòu),從下到上依次是采集、存儲(chǔ)處理以及數(shù)據(jù)服務(wù)三層。

基于MongoDB構(gòu)建數(shù)據(jù)中臺(tái)具有這樣幾個(gè)核心優(yōu)勢(shì),即無(wú)縫橫向擴(kuò)展能力、多類型結(jié)構(gòu)數(shù)據(jù)模型、邏輯模型即存儲(chǔ)模型、異構(gòu)實(shí)時(shí)數(shù)據(jù)庫(kù)同步能力、無(wú)代碼快速API發(fā)布能力以及簡(jiǎn)單、輕量和快速。

圖數(shù)據(jù)庫(kù)GDB的設(shè)計(jì)與實(shí)踐

阿里巴巴資深技術(shù)專家朱國(guó)云(宗岱)為大家分享了阿里巴巴圖數(shù)據(jù)庫(kù)GDB的設(shè)計(jì)與實(shí)踐。

什么是圖數(shù)據(jù)庫(kù)

圖數(shù)據(jù)庫(kù)是針對(duì)于圖結(jié)構(gòu)設(shè)計(jì)的數(shù)據(jù)庫(kù),而非圖片數(shù)據(jù)庫(kù)。什么是圖結(jié)構(gòu)呢?這是以社交網(wǎng)絡(luò)模型為例介紹,該模型中存在人與人、人與論壇、人與帖子、帖子與論壇之間的關(guān)系,人、論壇、帖子就屬于圖中的點(diǎn)(即Vertex),點(diǎn)之間的關(guān)系就稱之為邊(即Edge),在點(diǎn)和邊上會(huì)有一些屬性(即Property)。
如今,一些優(yōu)秀的社交應(yīng)用會(huì)將多維數(shù)據(jù)存儲(chǔ)到統(tǒng)一的圖空間中來(lái),進(jìn)行存儲(chǔ)、查詢和分析,為用戶帶來(lái)更好的體驗(yàn)。近年來(lái),數(shù)據(jù)量越來(lái)越大的同時(shí),數(shù)據(jù)維度也逐漸增多,圖數(shù)據(jù)庫(kù)就是在這種背景下誕生的。
圖數(shù)據(jù)庫(kù)作為近年來(lái)數(shù)據(jù)庫(kù)領(lǐng)域中發(fā)展最快的一類,與關(guān)系型數(shù)據(jù)庫(kù)存在哪些差別呢?通常情況下,關(guān)系型數(shù)據(jù)庫(kù)中需要通過(guò)建七八張表才能做到的模型,圖數(shù)據(jù)庫(kù)能夠更加直觀、自然地表現(xiàn)出來(lái)。此外,圖數(shù)據(jù)庫(kù)做關(guān)聯(lián)查詢的速度更快,還能夠提供更多探索發(fā)現(xiàn)的能力。
前面提到的是屬性圖模型,在圖數(shù)據(jù)領(lǐng)域還有一種RDF模型。兩者的主要區(qū)別在于RDF的點(diǎn)和邊上不可以有屬性。

圖數(shù)據(jù)庫(kù)發(fā)展速度很快,因此種類也是特別多,主要可以分成四類,即知識(shí)圖/RDF、分析圖、圖數(shù)據(jù)庫(kù)、多模型圖數(shù)據(jù)庫(kù)。這些圖數(shù)據(jù)庫(kù)系統(tǒng)使用的主流查詢語(yǔ)言大致有三類,即Neo4j主推的最早使用類SQL查詢語(yǔ)言的Cypher、用于RDF上的描述語(yǔ)言SPARQL和目前支持最廣泛的基于屬性圖的查詢語(yǔ)言Gremlin。

什么是圖數(shù)據(jù)庫(kù)GDB

GDB是一種圖數(shù)據(jù)庫(kù),其主要處理高度連接數(shù)據(jù)的存儲(chǔ)和查詢,其支持了屬性圖模型和開(kāi)源的TinkerPop Gremlin查詢語(yǔ)言。與其他數(shù)據(jù)庫(kù)不同的是:GDB是云原生數(shù)據(jù)庫(kù),從一開(kāi)始就建設(shè)在阿里云基礎(chǔ)設(shè)施之上,因此能夠做到彈性、實(shí)時(shí)和高可靠。
GDB脫胎于Tair Service中的TairGraph 子系統(tǒng),后來(lái)其孵化出來(lái),并放到阿里云上來(lái)專注地解決高度連接數(shù)據(jù)場(chǎng)景中的問(wèn)題?;赥air 10年的技術(shù)基礎(chǔ),GDB實(shí)現(xiàn)了高度優(yōu)化的自研引擎,能夠?qū)崿F(xiàn)實(shí)時(shí)更新和秒級(jí)查詢,并且完整地支持ACID事務(wù),并通過(guò)多副本保障高可靠。此外,還做到了服務(wù)高可用,能夠?qū)崿F(xiàn)節(jié)點(diǎn)故障迅速轉(zhuǎn)移;易運(yùn)維,提供了開(kāi)箱即用的能力;可視化,更利于分析數(shù)據(jù)的內(nèi)在關(guān)系。
在架構(gòu)層面,GDB為客戶提供的是獨(dú)享專屬實(shí)例,這意味著資源獨(dú)立,無(wú)須擔(dān)心搶占問(wèn)題。HA方面采用了最經(jīng)典主備架構(gòu),并提供只讀節(jié)點(diǎn)來(lái)提升實(shí)時(shí)查詢能力。GDB支持了Gremlin開(kāi)源的TinkerPop SDK,為了實(shí)現(xiàn)每秒百萬(wàn)級(jí)點(diǎn)邊過(guò)濾,GDB定制了專屬的圖友好數(shù)據(jù)庫(kù)引擎,并在查詢優(yōu)化和并行執(zhí)行等方面做了大量?jī)?yōu)化,還支持了事務(wù)和自動(dòng)索引。在數(shù)據(jù)通道部分,GDB還提供了多種數(shù)據(jù)源的高效導(dǎo)入支持。

GDB的場(chǎng)景和案例

如今,GDB在社交網(wǎng)絡(luò)、金融欺詐檢測(cè)、實(shí)時(shí)推薦引擎、知識(shí)圖譜以及網(wǎng)絡(luò)/IT運(yùn)營(yíng)等場(chǎng)景中得到廣泛應(yīng)用,而且這些場(chǎng)景往往交織在一起。使用GDB能夠?qū)⒅捌x線的場(chǎng)景做到實(shí)時(shí)或者準(zhǔn)實(shí)時(shí)。
總結(jié)而言,在數(shù)據(jù)維度越來(lái)越多、數(shù)據(jù)相互關(guān)聯(lián)越來(lái)越緊密的今天,GDB提供了一種有效的圖存儲(chǔ)方式,能夠?qū)⒍嗑S數(shù)據(jù)很好地連接起來(lái),并通過(guò)圖查詢、圖算法把數(shù)據(jù)隱藏的價(jià)值實(shí)時(shí)地、智能地挖掘出來(lái)。

從Java走向云原生,Redisson不停地探索

Redisson聯(lián)合創(chuàng)始人顧睿為大家分享了Redisson從Java走向云原生的探索之路。
Redisson是架設(shè)在Redis基礎(chǔ)上的一個(gè)Java駐內(nèi)存數(shù)據(jù)網(wǎng)格。Redisson以Java接口方式而非命令的形式提供給大家,使用非常簡(jiǎn)單。其優(yōu)勢(shì)在于上手容易,只要能夠使用Java基本就能夠使用Redisson。此外,Redisson在設(shè)計(jì)時(shí)規(guī)避了多線程的問(wèn)題,采用了線程安全的設(shè)計(jì),同時(shí)引入了線程池和連接池的管理,在同步和異步的場(chǎng)景中都能選到適合的方式。
除了使用簡(jiǎn)單外,Redisson在功能上也提供了多種選擇,能夠支持31種分布式集合、14種分布式對(duì)象、8種分布式鎖和分布式同步器以及5種分布式服務(wù)。
Redisson的架構(gòu)主要分為兩大塊,包含Redisson客戶端的連接管理、協(xié)議解析在內(nèi)的基本功能和包括分布式結(jié)構(gòu)、分布式中間件以及第三方功能支持在內(nèi)的高級(jí)功能。
從Redisson架構(gòu)角度來(lái)看,似乎和Redis的理念相沖突。Redis設(shè)計(jì)理念強(qiáng)調(diào)簡(jiǎn)單,而Redisson設(shè)計(jì)卻比較復(fù)雜;Redis提供了9種數(shù)據(jù)結(jié)構(gòu),界限清晰,而Redisson提供了約60種,界限比較模糊;Redis以命令形式面向用戶,而Redisson卻以Java API形式面向用戶。看似分道揚(yáng)鑣,實(shí)則殊途同歸,都是為了將復(fù)雜隱藏起來(lái),將簡(jiǎn)單的使用方式提供給用戶。
只支持Java是Redisson的優(yōu)點(diǎn),也是缺點(diǎn)。Java是Redisson的一個(gè)牢籠,這對(duì)于應(yīng)用程序開(kāi)發(fā)者而言是優(yōu)勢(shì),而對(duì)于程序庫(kù)開(kāi)發(fā)者而言就是劣勢(shì)。因此,Redisson一直在思考如何走出困境,擁抱其他的生態(tài)。
2016年,Redisson首先嘗試了使用Vert.x框架,Vert.x的特點(diǎn)是集群運(yùn)行環(huán)境、多語(yǔ)言交互性和基于成熟技術(shù),并且Vert.x對(duì)開(kāi)發(fā)者的限制比較少。因此,Redisson做了相關(guān)的實(shí)驗(yàn),實(shí)現(xiàn)了Redisson在其他語(yǔ)言中的運(yùn)行。但是這種方案學(xué)習(xí)成本非常大,而實(shí)際收益卻不高。
2018年,Redisson注意到ORACLE Labs推出的GraalVM,GraalVM的底層是Java運(yùn)行層,包括GraalVM和SubstrateVM,可以讓其他語(yǔ)言都能夠編譯融合并放入JVM中執(zhí)行,同時(shí)保證相互溝通的橋梁。SubstrateVM是最吸引Redisson的點(diǎn),它可以理解為用Java編寫(xiě)的嵌入式虛擬機(jī),使得真正的跨平臺(tái)和跨語(yǔ)言成為可能。

于是,Redisson開(kāi)始了“逃跑之路”,實(shí)現(xiàn)了redisson-native。對(duì)于Java、Java+Warm UP以及Native三種方式的性能進(jìn)行對(duì)比,能夠看出redisson-native的性能具有明顯的優(yōu)勢(shì)。

因此,這說(shuō)明借助SubstrateVM逃離Java是非常好的解決方案,無(wú)需考慮JNI等相關(guān)問(wèn)題,大部分操作只需要Java即可完成,學(xué)習(xí)成本較低,并且無(wú)需安裝獨(dú)立的JVM,生成文件也較小,云原生情況下性能較高,并且C調(diào)用非常簡(jiǎn)單。延伸開(kāi)去,可以將Redisson帶入到原生的二進(jìn)制狀態(tài)并進(jìn)行二次封裝,實(shí)現(xiàn)遍地開(kāi)花。

基于企業(yè)級(jí)HBase的大數(shù)據(jù)存儲(chǔ)與處理

阿里云智能事業(yè)群數(shù)據(jù)庫(kù)產(chǎn)品事業(yè)部技術(shù)總監(jiān),Apache HBase PMC沈春輝(天梧)為大家分享了基于企業(yè)級(jí)HBase的大數(shù)據(jù)存儲(chǔ)與處理。
進(jìn)入大數(shù)據(jù)時(shí)代,數(shù)據(jù)量越來(lái)越多,數(shù)據(jù)種類也越來(lái)越豐富。數(shù)據(jù)量多這一點(diǎn)容易理解,而數(shù)據(jù)種類豐富則可以從三個(gè)維度來(lái)看:從靜態(tài)維度,如今能夠用數(shù)字化設(shè)備越來(lái)越多;從動(dòng)態(tài)維度,設(shè)備、服務(wù)的運(yùn)行狀態(tài)越來(lái)越多;此外,還有數(shù)據(jù)再加工又產(chǎn)生了新數(shù)據(jù),使得數(shù)據(jù)變得無(wú)窮無(wú)盡。面對(duì)這么多數(shù)量和種類的數(shù)據(jù),如果沒(méi)有價(jià)值就都是廢墟?;仡欉@十年,大家對(duì)數(shù)據(jù)價(jià)值層面的認(rèn)知越來(lái)越強(qiáng)烈,數(shù)據(jù)也越來(lái)越多地應(yīng)用到生活中的各個(gè)場(chǎng)景。
隨著對(duì)數(shù)據(jù)的應(yīng)用,系統(tǒng)會(huì)面臨很多挑戰(zhàn)。大數(shù)據(jù)提出了“4V”,具體對(duì)于開(kāi)發(fā)者而言,數(shù)據(jù)體量非常大意味著系統(tǒng)需要高擴(kuò)展性;數(shù)據(jù)種類非常豐富意味著系統(tǒng)需要具有高靈活性,能夠很好承載隨時(shí)隨地產(chǎn)生的新數(shù)據(jù)種類;數(shù)據(jù)時(shí)效性意味著系統(tǒng)具有高實(shí)時(shí)性,具有數(shù)據(jù)在線化能力;數(shù)據(jù)價(jià)值則意味著需要能夠商業(yè)化,系統(tǒng)需要降低數(shù)據(jù)的存儲(chǔ)和計(jì)算成本。
十多年前,Google首先遇到大數(shù)據(jù)問(wèn)題,因此發(fā)表了Big Table論文。而HBase則是基于該論文設(shè)計(jì)的高可靠、高性能、可伸縮的開(kāi)源大數(shù)據(jù)NoSQL系統(tǒng)。HBase放棄了對(duì)于關(guān)系型數(shù)據(jù)庫(kù)事務(wù)的支持,重點(diǎn)構(gòu)建擴(kuò)展性能力、靈活性能力、實(shí)時(shí)響應(yīng)能力以及對(duì)大體量數(shù)據(jù)存儲(chǔ)低成本的能力。

阿里巴巴從2010年開(kāi)始調(diào)研HBase,如今已經(jīng)走過(guò)了近十個(gè)年頭。隨著這十年的逐步探索,阿里巴巴也豐富了HBase的使用場(chǎng)景,如消息,訂單,F(xiàn)eed流,監(jiān)控,大屏,軌跡,設(shè)備狀態(tài),AI存儲(chǔ),推薦,搜索,BI報(bào)表等。阿里巴巴自己使用HBase已經(jīng)達(dá)到了非常大的體量和規(guī)模,也在產(chǎn)品上有了很多積累和沉淀,形成了如今云HBase+X-Pack的架構(gòu)。單獨(dú)依靠HBase數(shù)據(jù)庫(kù)無(wú)法解決業(yè)務(wù)場(chǎng)景下的復(fù)雜問(wèn)題,因此X-Pack基于云HBase在計(jì)算、檢索、多模型上進(jìn)行了擴(kuò)展,包含了Spark、Phoenix、Solr以及OpenTSDB等,形成了穩(wěn)定、易用、低成本的一站式大數(shù)據(jù)NoSQL平臺(tái)。

云HBase+X-Pack架構(gòu)實(shí)現(xiàn)了低成本的數(shù)據(jù)存儲(chǔ),將HBase運(yùn)行在OSS上面,并且讓整體接口模型復(fù)用HDFS能力。并且同時(shí)克服了OSS在面向文件場(chǎng)景下的問(wèn)題,將原本面向?qū)ο蟮拇鎯?chǔ)系統(tǒng)當(dāng)做類似云盤(pán)來(lái)使用,使得存儲(chǔ)成本降低3到7倍。此外,還基于HBase做到了一體化冷熱分離,并使得業(yè)務(wù)無(wú)感知。
除了低成本存儲(chǔ)之外,阿里云HBase還投入了大量的精力來(lái)優(yōu)化性能。相比開(kāi)源版本,阿里云HBase在各個(gè)性能指標(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)動(dòng)以及在線和離線的高效融合。此外,阿里內(nèi)部也提供了一套易用的數(shù)據(jù)遷移系統(tǒng),能夠?qū)崿F(xiàn)平滑在線搬遷。
無(wú)論是從穩(wěn)定性、易用性還是性能和成本上來(lái)說(shuō),阿里云HBase都有很大的提升。未來(lái),阿里云HBase還會(huì)通過(guò)共享塊存儲(chǔ)等技術(shù)進(jìn)一步降低成本,也將會(huì)推出Serverless能力,并且會(huì)通過(guò)新硬件來(lái)加速計(jì)算,降低成本。

斗魚(yú)直播從0到1混合云架構(gòu)演進(jìn)

斗魚(yú)技術(shù)總監(jiān)馬勇為大家分享了斗魚(yú)直播的混合云架構(gòu)演進(jìn)之路。
斗魚(yú)直播成立于2014年,是以游戲賽事為主的直播平臺(tái),平臺(tái)簽約國(guó)內(nèi)Top100主播約50位,覆蓋游戲主播Top10中8位,月活達(dá)1.5億,2019年Q1付費(fèi)用戶約600萬(wàn)。斗魚(yú)主要有三條業(yè)務(wù)特點(diǎn):頭部主播熱點(diǎn)效應(yīng),流量水位波動(dòng)較大,以及在線互動(dòng)場(chǎng)景較多。目前的技術(shù)現(xiàn)狀是每天業(yè)務(wù)調(diào)用量在千億左右,Redis實(shí)例集群達(dá)2000以上,單個(gè)接口QPS達(dá)20萬(wàn)以上。
斗魚(yú)直播從2016年開(kāi)始保持每年25%以上的月活增長(zhǎng),目前面對(duì)的技術(shù)困境主要有三點(diǎn):(1)“炸魚(yú)”,頭部流量拖死全站房間;(2)服務(wù)器資源利用率低,日常水位大量服務(wù)器閑置;(3)Redis維護(hù)和容災(zāi)成本高。
斗魚(yú)混合云架構(gòu)歷程主要分為三個(gè)階段,在探索期做了獨(dú)立業(yè)務(wù)上云的嘗試;在成長(zhǎng)期通過(guò)IDC+云的方式實(shí)現(xiàn)了橫向流量擴(kuò)容;在成熟期完成橫向擴(kuò)容之后實(shí)現(xiàn)對(duì)資源的最大化利用。

探索期的主要背景是IDC硬件資源呈現(xiàn)為長(zhǎng)期緊缺狀態(tài),研發(fā)支撐跟不上業(yè)務(wù)發(fā)展,而公有云逐步成熟。因此在這一階段,斗魚(yú)嘗試性選取了廣告業(yè)務(wù)作為上云試點(diǎn),并且取得了較大收益,系統(tǒng)的吞吐量直線上升,依賴穩(wěn)定性顯著提升,計(jì)算成本也大幅下降。但是這一模式的適用范圍較窄,無(wú)法直接復(fù)制到其他業(yè)務(wù)場(chǎng)景,而且這一模式只適用于單一數(shù)據(jù)中心的情況,于是就進(jìn)入了成長(zhǎng)期。
成長(zhǎng)期的背景是需要解決IDC到公有云的數(shù)據(jù)通道構(gòu)建問(wèn)題。針對(duì)這一問(wèn)題,斗魚(yú)和阿里云共同構(gòu)建了RedisShake數(shù)據(jù)同步工具,支持了Redis全量、增量數(shù)據(jù)同步、支持云上、云下不同數(shù)據(jù)中心的同步,還支持秒級(jí)數(shù)據(jù)監(jiān)控。通過(guò)RedisFullCheck實(shí)現(xiàn)了數(shù)據(jù)多維度對(duì)比,基本能保證數(shù)據(jù)通路的數(shù)據(jù)一致性問(wèn)題。這一階段的收益在于實(shí)現(xiàn)了單一機(jī)房到多機(jī)房的數(shù)據(jù)擴(kuò)展過(guò)程。這個(gè)階段存在存在兩點(diǎn)有待改進(jìn),即資源調(diào)度成本比較高和資源缺乏精細(xì)化運(yùn)營(yíng)。
成熟期的主要優(yōu)化方向是職責(zé)分離和彈性伸縮,優(yōu)化方案包括四個(gè)方面,即流量分級(jí)、數(shù)據(jù)冷熱分離、彈性伸縮和流量調(diào)度。其中調(diào)度策略包括了手動(dòng)調(diào)度、定時(shí)調(diào)度、資源消耗調(diào)度和Hook調(diào)度。
對(duì)于混合云架構(gòu)而言,斗魚(yú)也總結(jié)了三點(diǎn)經(jīng)驗(yàn):
? 充分合理評(píng)估:云上計(jì)算網(wǎng)絡(luò)與IDC差異較大,需要結(jié)合業(yè)務(wù)實(shí)際情況進(jìn)行測(cè)試,避免產(chǎn)生影響。 ? 投入產(chǎn)出比:混合云架構(gòu)對(duì)資源冗余存在一定要求或者帶來(lái)一定負(fù)面影響。 ? 延時(shí)問(wèn)題:企業(yè)應(yīng)通過(guò)評(píng)估業(yè)務(wù)的重要性決定是否做混合云,雖然從數(shù)據(jù)中心到云有專線,但也存在一定延時(shí)。

Cassandra&X-Pack Spark云數(shù)據(jù)庫(kù)技術(shù)剖析

阿里云智能高級(jí)技術(shù)專家曹龍(封神)為大家剖析了Cassandra與X-Pack Spark云數(shù)據(jù)庫(kù)技術(shù)。
為什么選擇Cassandra呢?Cassandra是一種完全沒(méi)有中心的數(shù)據(jù)庫(kù),其每個(gè)節(jié)點(diǎn)都是主節(jié)點(diǎn),如果Kill掉其中任何一個(gè)節(jié)點(diǎn)都不會(huì)影響集群的QPS以及延時(shí)。除了Cassandra使用的P2P-QUORUM機(jī)制之外,還有HA機(jī)制、Raft以及單內(nèi)存副本+共享存儲(chǔ)等機(jī)制,而只有Cassandra能夠做到幾乎沒(méi)有感知時(shí)間,因此Cassandra的Slogan就是“Always Online”。

Cassandra能夠?qū)崿F(xiàn)平滑擴(kuò)展,一方面可以增加節(jié)點(diǎn)數(shù)據(jù)量,甚至擴(kuò)展多個(gè)DC。另一方面在云上還可以增加內(nèi)存等。平滑擴(kuò)展是Cassandra的重要特性,其他數(shù)據(jù)庫(kù)往往難以做到。Cassandra還可以實(shí)現(xiàn)全球多DC,架構(gòu)師可以根據(jù)業(yè)務(wù)自由適配。
對(duì)于學(xué)習(xí)成本而言,Cassandra提供類似于SQL語(yǔ)句的CQL,會(huì)MySQL的DBA或者開(kāi)發(fā)人員基本上一天之內(nèi)就能學(xué)會(huì)Cassandra。在安全方面,Cassandra和主流數(shù)據(jù)庫(kù)一樣提供了完善的認(rèn)證以及鑒權(quán)體系。在多語(yǔ)言方面,Cassandra采用了非Thrift方式,采用客戶端和服務(wù)端直連方式,并且支持主流的語(yǔ)言,并且具有良好的性能。最后一點(diǎn),就是運(yùn)維簡(jiǎn)單,Cassandra整體只有一個(gè)進(jìn)程,沒(méi)有Proxy、HA以ZK等角色節(jié)點(diǎn)。
Cassandra具有很多功能,比較特別的就是其索引支持物化視圖、還支持SASI全文索引,并且集成了Lucene做更強(qiáng)的全文索引,以及支持CDC對(duì)接流式系統(tǒng)。

Cassandra的功能和生態(tài)比較豐富,其可以和其他組件進(jìn)行搭配,比如Spark、Kafka、ES、Lucene、RocksDB等。
Cassandra在寬表領(lǐng)域排名全球第一,即使在國(guó)內(nèi)缺乏宣傳的情況下排名也是靠前的。Cassandra的發(fā)展目前已經(jīng)經(jīng)過(guò)了十年,其將AWS的DynamoDB和Google的BigTable兩者的長(zhǎng)處融合在一起形成的。阿里巴巴也在2019年公測(cè)并發(fā)布了阿里云Cassandra數(shù)據(jù)庫(kù)服務(wù),并且對(duì)原生的Cassandra進(jìn)行了多方面提升,比如實(shí)現(xiàn)了自動(dòng)化運(yùn)維、兼容DynamoDB、全鏈路優(yōu)化性能提升100%等。
總結(jié)而言,云數(shù)據(jù)庫(kù)Cassandra版是在線可靠的NoSQL可調(diào)一致性的分布式數(shù)據(jù)庫(kù)服務(wù),支持類SQL語(yǔ)法CQL,提供強(qiáng)大的分布式索引能力,提供安全、多活容災(zāi)、監(jiān)控、備份恢復(fù)等企業(yè)級(jí)能力,兼容DynamoDB協(xié)議。
X-Pack Spark不僅僅支持Cassandra,還能夠支持HBase、Phoenix、RDS和MongoDB。X-Pack Spark不僅具有強(qiáng)大的連接能力和歸檔能力,還能夠通過(guò)ElasticNode降低計(jì)算和存儲(chǔ)成本。
Cassandra+Spark能夠應(yīng)用于非常廣泛的業(yè)務(wù)場(chǎng)景中,比如用戶畫(huà)像、Feed、小對(duì)象存儲(chǔ)以及推薦平臺(tái)等。
總結(jié)而言,將Spark與Cassandra的優(yōu)點(diǎn)結(jié)合在一起能夠滿足多種業(yè)務(wù)場(chǎng)景的需求,能夠?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)載。
向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI