【问题标题】:Hazelcast Hibernate CacheKey sizeHazelcast Hibernate CacheKey 大小
【发布时间】:2016-07-01 09:45:58
【问题描述】:

我们目前正在使用 Hazelcast 在三个节点上创建一个集群,并使用 Hibernate 作为我们的数据库访问。现在我们注意到 Hazelcast 发送事件以更新 Hibernate 二级缓存的默认序列化需要 Hibernate 的 CacheKey 的完整序列化,在我们的例子中,由于嵌入的键(3.8Kbytes)而特别大。

我们想知道是否有一种方法可以通过网络发送最少量的数据并在接收节点上重建 CacheKey。在我们当前的实现中,我们发送了密钥、entityOrRoleName 和tenantId,但难以重建 CacheKey 的类型。

关于如何做到这一点的任何建议? Hibernate 是否支持使用这些数据重建 CacheKey (of Type)?

【问题讨论】:

    标签: java hibernate hazelcast


    【解决方案1】:

    实际上我们使用了一个特殊的 Hibernate4CacheKeySerializer。见https://github.com/hazelcast/hazelcast-hibernate/blob/master/hazelcast-hibernate4/src/main/java/com/hazelcast/hibernate/serialization/Hibernate4CacheKeySerializer.java

    这已经比 Java 序列化更有效了。

    我们认为不可能提高效率。

    【讨论】:

    • 我会批准你的回答。归根结底,我们最终选择了一个非常相似的解决方案。主要区别在于读取时,我没有使用 UNSAFE(我喜欢这部分),而是分析了 Hibernate 如何生成它的 CacheKey 并构建了类似的东西。很抱歉,我无法提供我的解决方案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-07
    • 1970-01-01
    • 1970-01-01
    • 2011-07-25
    • 2016-03-24
    • 2014-08-17
    • 2014-09-11
    相关资源
    最近更新 更多