Java 如何以编程方式使用JCache和writw-behind配置Hazelcast?

Java 如何以编程方式使用JCache和writw-behind配置Hazelcast?,java,hazelcast,in-memory-database,jcache,Java,Hazelcast,In Memory Database,Jcache,我正在尝试添加到当前的应用程序实现中,我正在使用符合JCache的技术。目前,我已经能够使用ApacheIgnite,并使用缓存存储的实现对数据库进行读写,使它与几个缓存一起工作。写入操作是使用批处理的write-behind完成的。有些配置不是JCache的一部分,但我已经能够通过Ignite提供的MutableConfiguration扩展类添加它。另外,我在没有任何缓存提供程序或缓存管理器的情况下使用Spring实现了这一点,因此在我的配置类中,我将缓存直接作为bean公开。我从Ignit

我正在尝试添加到当前的应用程序实现中,我正在使用符合JCache的技术。目前,我已经能够使用ApacheIgnite,并使用缓存存储的实现对数据库进行读写,使它与几个缓存一起工作。写入操作是使用批处理的write-behind完成的。有些配置不是JCache的一部分,但我已经能够通过Ignite提供的MutableConfiguration扩展类添加它。另外,我在没有任何缓存提供程序或缓存管理器的情况下使用Spring实现了这一点,因此在我的配置类中,我将缓存直接作为bean公开。我从Ignite类获取它们,该类接受我的配置类,并允许我按名称获取缓存。 现在我正在尝试将此配置移植到Hazelcast,但在执行此操作时遇到问题

对于初学者,我无法找到一种在没有xml文件的情况下以编程方式配置缓存的方法。我找到的所有示例都使用CacheManager,它获取一个属性对象和该文件的路径。如果我传递一个类的路径而不是xml,它会工作吗

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

最后一件事,我注意到没有关于为缓存配置write-behind的文档,只针对映射。这不可能吗?缓存是否只允许直写

谢谢

  • 因为write-behind不在当前的JCache规范中,它也不在Hazelcast中。 根据Ignite的文件
  • Ignite提供org.apache.Ignite.cache.store.CacheStore接口,该接口扩展了CacheLoader和CacheWriter

    这意味着您必须使用Ignite的专有API来实现写后功能。IMHO使用JCache是无用的,因为在这种情况下,您将有一个供应商锁定。JCache规范的目标是终止所有专有的缓存API

    如果您想使用适当的API,那么我建议您使用Hazelcast的
    IMap
    来获得写后功能

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

    下面的示例项目也可能有用

    它显示了XML和Java配置

  • 因为write-behind不在当前的JCache规范中,它也不在Hazelcast中。 根据Ignite的文件
  • Ignite提供org.apache.Ignite.cache.store.CacheStore接口,该接口扩展了CacheLoader和CacheWriter

    这意味着您必须使用Ignite的专有API来实现写后功能。IMHO使用JCache是无用的,因为在这种情况下,您将有一个供应商锁定。JCache规范的目标是终止所有专有的缓存API

    如果您想使用适当的API,那么我建议您使用Hazelcast的
    IMap
    来获得写后功能

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

    下面的示例项目也可能有用

    它显示了XML和Java配置