2016-07-01 40 views
0

我們目前正在使用Hibernate作爲我們的數據庫訪問在三個節點上使用Hazelcast創建羣集。現在我們注意到,Hazelcast的默認序列化發送事件來更新Hibernate的第二級緩存需要Hibernate的CacheKey的完整序列化,在我們的例子中,由於嵌入的密鑰(3.8K字節)而特別大。Hazelcast Hibernate CacheKey大小

我們想知道是否有辦法通過網絡發送最小數量的數據,並在接收節點上重建CacheKey。在我們當前的實現中,我們發送了關鍵字entityOrRoleName和tenantId,但是難以重構CacheKey的類型。

有關如何做到這一點的任何建議? Hibernate是否支持使用此數據重建CacheKey(類型)?

回答

1

其實我們使用了一個特殊的Hibernate4CacheKeySerializer。見https://github.com/hazelcast/hazelcast-hibernate/blob/master/hazelcast-hibernate4/src/main/java/com/hazelcast/hibernate/serialization/Hibernate4CacheKeySerializer.java

這比Java序列化更高效。

我們不認爲有可能使這種效率更高。

+0

我會批准你的答案。在一天結束的時候,我們結束了一個非常類似的解決方案。主要區別在於,在閱讀時,我沒有使用UNSAFE(我喜歡這部分),而是分析了Hibernate如何生成CacheKey並構建了類似的東西。對不起,我無法提供我的解決方案 – stikku