2016-07-01 6 views
0

現在、3つのノードにわたってHazelcastを使用してHibernateをDBアクセスとして使用するクラスタを作成しています。今度は、Hazelcastの2番目のレベルのキャッシュを更新するイベントを送るHazelcastのデフォルトのシリアル化に、HibernateのCacheKeyの完全なシリアル化が必要であることに気付きました。これは、埋め込みキー(3.8Kバイト)Hazelcast Hibernate CacheKeyのサイズ

ネットワーク経由で最小限のデータを送信し、受信側ノードでCacheKeyを再構築する方法があるのだろうかと思っていました。現在の実装では、entityOrRoleNameおよびtenantIdというキーを送信しますが、CacheKeyのタイプを再構築することは困難です。

これを行う方法に関するご提案はありますか? Hibernateはこのデータを使って(Typeの)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

関連する問題