關於記憶體快取的可伸縮性問題

banq發表於2013-03-09
2013-03-08 18:19 "@tangxuehua
"的內容
記憶體快取遇到叢集部署,Domain就沒那麼容易一致了,面對這種情況,大家是怎麼處理的呢? ...


你的這個帖子資訊量很大,我試圖回答一下,但是可能沒抓住重點,請多多諒解了,我是朝架構的可伸縮性Scalable方向上理解回答的。

叢集或分散式快取的一致性問題,一般我建議用NoSQL來解決,不同的NoSQL策略不同,不能一概而論,當然他們在分割槽容錯性方面還是有待提高,第二代NoSQL應該在可靠性上有提升,見文章:

The nosql Partition Tolerance Myth

下面回答兩個問題,我挑選回答如下:
>如何做伺服器之間不同記憶體快取之間的資料同步問題;
採取資料網格產品可以實現同步,如terracotta兵馬俑, hazelcast或者 Oracle 的coherence。採取Big Memory能讓一臺機器支援到幾十G容量,注意因為是快取,有大小限制,而聚合根只適合CQRS中的命令寫操作,寫操作不可能特別大,如果特別大,採取LMAX架構。

>如何確保domain產生的event的持久化順序與查詢端接收到event的順序一致。
在持久化之前,將event放入一個Queue佇列排隊,如同LMAX架構中的事件佇列一樣,這樣必然是先到先出,如同排隊進入一個管道一樣。


[該貼被admin於2013-03-09 14:47修改過]

相關文章