這是一個體繫結構問題。 我有一個擁有巨大內存的服務器,用作大對象緩存持有者的想法。客戶發送「動作」到這個服務器(像搜索人物,年齡< 13)。然後,這臺機器(使事情複雜化,讓這個服務器更多的實例以及爲每個實例分發Persons列表來保存一半的數據,並且這兩個實例都可以在查詢 - MapReduce樣式上工作)然後返回符合條件的人員。 其他「動作」將是一個特定的緩存刷新,或者說「更新人員id = 3以實例...」等。實現緩存服務器的體系結構問題
猜猜這是Oracle Coherence的最佳做法,但我想知道是否有人有其他開源解決方案或想法。
一個簡單的解決方案是將EhCache與Hibernate結合使用,但我不知道用什麼協議將它變成服務器(我將發送操作作爲「服務器」上的調用方法發送,而方法返回與查詢匹配的人員列表)。也許可以使用簡單的RMI。我還沒有確信,我想要一個更經過驗證的解決方案,一個框架,同時擁有故障轉移,自動發現和映射減少功能也不錯。我想我可以在我的EhCache解決方案上封裝GridGain並解決這個問題?這將是矯枉過正的(我可以堅持只有一個這個數據網格服務器的實例)。
其他選項將是兵馬俑。關鍵是我對Terracotta瞭解不多,只是你可以在實例之間共享數據。如果我將流程中的元素添加到分佈式緩存中,並且在另一個流程中存在緩存的本地副本,並且只有差異被複制?這對於每個進程都會查詢本地緩存並且速度非常快的事實都很好,但這也意味着客戶端進程中使用的內存很多。
那麼有人有什麼想法?
謝謝。