Ignite的使用場景

這里我們只關(guān)注緩存,Ignite的設(shè)計中引入了很多的計算平臺的能力,例如分布式計算和消息之類,在討論其他框架時不做比較。

Ignite和Redis的差異

Ignite源于H2數(shù)據(jù)庫,因此它的起點是個進(jìn)程內(nèi)緩存。但由于可以使用jdbc thin driver連接,加上它的集群特性,人們很容易把它當(dāng)作一個進(jìn)程外緩存去用,這是個誤區(qū)。
官網(wǎng)quickstart對于Pythin/node的使用場景,應(yīng)用使用thinclient的模式連接,這時候Ignite的作用和Redis就沒有什么差異,Ignite .Net/c++有點特殊,可以使用linq的能力作為節(jié)點加入進(jìn)來,也使用類似于java framework的完整能力,所以與其說Ignite是個中間件,不如說它是個framework。
數(shù)據(jù)結(jié)構(gòu)方面,Ignite的數(shù)據(jù)結(jié)構(gòu)比較簡單,沒有Redis豐富。

性能方面
Redis執(zhí)行g(shù)et的時間復(fù)雜度為O(1),和數(shù)據(jù)量大小無關(guān),當(dāng)數(shù)據(jù)量超過千萬級別時,對于get操作非常友好。
Ignite的B+樹結(jié)構(gòu)導(dǎo)致get的時間復(fù)雜度和樹高有關(guān),不是O(1),當(dāng)數(shù)據(jù)量較小時可以有不錯的性能,隨著數(shù)據(jù)量超過數(shù)百G時,get性能下降。但B+樹幫助Ingite在執(zhí)行query請求時,可以有較好的表現(xiàn),優(yōu)于redis的O(N)模式。
Ignite的進(jìn)程內(nèi)外的差別大約是10~20倍,需要注意適應(yīng)場景。
幾種場景下讀緩存的大致性能如下:

redis:
    remote:
        serialize object: avergae time span = 669075
iginite:
    local:
        binary object: avergae time span = 2869
        serialize object: avergae time span = 6295        
    remote:
        binary object: avergae time span = 73911
        serialize object: avergae time span = 82019

Ignite和ECache/Caffeine的差異

Iginite的集群特性是它區(qū)別于ECache/Caffeine等進(jìn)程內(nèi)緩存框架的最大區(qū)別,當(dāng)我們需要對大型數(shù)據(jù)進(jìn)行分片存儲時會選擇Ignite。ECache/Caffeine框架的使用一般不開啟持久化,也不會產(chǎn)生序列化反序列化的計算,而Ignite由于是分布式框架,序列化是必備的能力。

合理選擇緩存方式

Ignite最適用的場景是網(wǎng)格計算,特點是大規(guī)模的集群節(jié)點,節(jié)點需要高速的讀緩存訪問,且緩存的數(shù)據(jù)分布可以有一定的黏性(affinity)。由于數(shù)據(jù)分布有黏性,節(jié)點間數(shù)據(jù)在寫入時需要一定的復(fù)制分發(fā)機(jī)制。
Ignite操作的對象往往需要按照class定義進(jìn)行對象的序列化和反序列化操作,表達(dá)式求值,因此適用的場景以進(jìn)程內(nèi)操作為主,否則對應(yīng)的bean需要被部署到其它節(jié)點上。具體做法是將實體類打包成普通jar包,并放在$IGNITE_HOME/libs/路徑下面。注意:打包的時候不能打包成spring-boot的可執(zhí)行包,要打包成普通jar包,這樣相關(guān)類才能正常加載。當(dāng)然如果集群里的節(jié)點均為應(yīng)用節(jié)點,則可以不用考慮這個問題。

從上面可以看到Ignite的場景是比較專用的,很少作為通用緩存適用。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容