gpt4 book ai didi

java - 如何以编程方式使用 JCache 并使用 writw 来配置 Hazelcast?

转载 作者:行者123 更新时间:2023-12-01 21:53:34 32 4
gpt4 key购买 nike

我正在尝试将 JCache 兼容技术添加到我正在开发的应用程序的当前实现中。目前,我已经能够使用 Apache Ignite 并让它与几个缓存一起使用,使用缓存存储的实现来读取和写入数据库。写入是通过批量写入完成的。有些配置不是 JCache 的一部分,但我已经能够通过 Ignite 提供的 MutableConfiguration 扩展类添加它。另外,我使用 Spring 完成了此操作,没有任何 CacheProvider 或 CacheManager,因此在我的配置类中,我将缓存直接公开为 beans。我从 Ignite 类获取它们,该类接受我的配置类并允许我按名称获取缓存。现在我正在尝试将此配置移植到 Hazelcast,但在执行此操作时遇到问题。

首先,我无法找到一种在没有 xml 文件的情况下以编程方式配置缓存的方法。我发现的所有示例都使用 CacheManager,它采用带有该文件路径的 Properties 对象。如果我传递一个类的路径而不是 xml,它会起作用吗?

我发现用于配置 HazelcastInstance 的 Config.class 接受 CacheSimpleConfig,但是 HazelcastInstance 没有 getCache 方法或类似方法。如果我以这种方式配置缓存,那么如何从 HazelcastInstance 获取缓存?

最后一件事,我注意到没有与缓存的配置后写相关的文档,仅适用于 map 。这不可能吗?缓存只允许直写吗?

谢谢!

最佳答案

  1. 因为 write-behind 不在当前的 JCache 规范中。它也不在 Hazelcast 中。来自 Ignite 的文档,

“Ignite 提供了 org.apache.ignite.cache.store.CacheStore 接口(interface),该接口(interface)扩展了 CacheLoader 和 CacheWriter。”

这意味着您必须使用 Ignite 的专有 API 来获得 write-behind 功能。恕我直言,使用 JCache 是没有用的,因为在这种情况下您将被供应商锁定。 JCache 规范的目标是结束所有专有缓存 API。

如果您想使用专有 API,那么我建议您使用 Hazelcast 的 IMap 来获取 write-behind 功能。

  • 您可以在创建缓存时以编程方式传递缓存配置;
  • Caching.getCachingProvider().getCacheManager().createCache("缓存",cacheConfig);

    下面的示例项目也很有用;

    https://github.com/hazelcast/hazelcast-code-samples/tree/master/hazelcast-integration/spring-jcache

    它显示 XML 和 Java 配置。

    关于java - 如何以编程方式使用 JCache 并使用 writw 来配置 Hazelcast?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34773603/

    32 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com