緩存原來作用是提高數(shù)據(jù)庫訪問性能。但是緩存不是數(shù)據(jù)庫遮羞布,架構(gòu)上緩存引入有著重要意義,這是一種內(nèi)存緩存(in-memory cache)或稱 數(shù)據(jù)網(wǎng)格In-Memory-Data-Grid (IMDG);Java EE 7引入分布式 彈性緩存Elastic Caching ,作為其云核心戰(zhàn)略的一部分。 云計算是一種計算和存儲分離的模型,云計算本質(zhì)是分布式可伸縮的內(nèi)存計算,可見Amazon彈性緩存介紹。
當我們將DDD領(lǐng)域模型加載到內(nèi)存中以后,我們就不再面向關(guān)系數(shù)據(jù)庫中數(shù)據(jù)表編程,而是真正直接面向模型對象編程。Java內(nèi)存模型優(yōu)點:基于內(nèi)存的并發(fā)模型,多線程機制,大量線程安全型庫包支持 基于內(nèi)存的并發(fā)機制,粒度靈活控制,靈活度高于數(shù)據(jù)庫鎖。 多核并行計算模型 基于線程的異步模型(Domain Events)。
Twitter從Ruby轉(zhuǎn)向JAVA的實踐證明:Cache緩存 + JVM微調(diào)是Java/JVM的核心競爭力,這也是最容易被我們忽視的,因為很多使用Java系統(tǒng)(包括Spring + Hibernate)只是當作SQL語句的包裝器來使用,負載主要集中在數(shù)據(jù)庫上,根本不會使用In-memory Cache。
Jdon認為對象緩存恰好是領(lǐng)域模型和Java內(nèi)存模型之間的銜接物,通過引入緩存,將領(lǐng)域模型落實到計算機平臺上,如下圖,基于此理念JdonFramework特點就是DDD + Cache,而Spring 3才剛剛加入緩存,兩種框架相比可見關(guān)鍵性方向的不同:
聯(lián)系客服