6.15. 创建自定义缓存存储实现


您可以通过 Data Grid 持久 SPI 创建自定义缓存存储。

6.15.1. Data Grid Persistence SPI

Data Grid Service Provider Interface (SPI)通过 NonBlockingStore 接口启用对外部存储的读写操作,具有以下特性:

简化事务集成
Data Grid 会自动处理锁定,因此您的实施不需要协调对持久性存储的并发访问。根据您使用的锁定模式,通常不会发生对同一键的并发写入。但是,您应该预期持久存储的操作来自多个线程,并创建实现来容许此行为。
并行迭代
网格可让您并行迭代带有多个线程的持久性存储中的条目。
减少序列化结果,从而减少 CPU 用量
网格以序列化格式公开存储的条目,这些条目可以远程传输。因此,Data Grid 不需要反序列化条目,它从持久性存储检索,然后在写入线时再次序列化。

6.15.2. 创建缓存存储

使用 NonBlockingStore API 的实现创建自定义缓存存储。

流程

  1. 实施适当的 Data Grid 持久 SPI。
  2. 如果有自定义配置,使用 @ConfiguredBy 注释给您的存储类添加注解。
  3. 如果需要,创建自定义缓存存储配置和构建器。

    1. 扩展 AbstractStoreConfigurationAbstractStoreConfigurationBuilder
    2. (可选)在存储配置类中添加以下注解,以确保自定义配置构建器从 XML 解析您的缓存存储配置:

      • @ConfigurationFor
      • @BuiltBy

        如果没有添加这些注解,则 CustomStoreConfigurationBuilder 会解析 AbstractStoreConfiguration 中定义的通用存储属性,并且任何额外的元素都会被忽略。

        注意

        如果配置没有声明 @ConfigurationFor 注释,当 Data Grid 初始化缓存时,会记录警告消息。

6.15.3. 自定义缓存存储配置示例

以下示例演示了如何使用自定义缓存存储实现配置 Data Grid:

XML

<distributed-cache>
  <persistence>
    <store class="org.infinispan.persistence.example.MyInMemoryStore" />
  </persistence>
</distributed-cache>

JSON

{
  "distributed-cache": {
    "persistence" : {
      "store" : {
        "class" : "org.infinispan.persistence.example.MyInMemoryStore"
      }
    }
  }
}

YAML

distributedCache:
  persistence:
    store:
      class: "org.infinispan.persistence.example.MyInMemoryStore"

ConfigurationBuilder

Configuration config = new ConfigurationBuilder()
            .persistence()
            .addStore(CustomStoreConfigurationBuilder.class)
            .build();

6.15.4. 部署自定义缓存存储

要将缓存存储实现与 Data Grid Server 搭配使用,您必须为其提供 JAR 文件。

先决条件

  • 如果 Data Grid Server 正在运行,则停止它。

    Data Grid 仅在启动时加载 JAR 文件。

流程

  1. 将自定义缓存存储实施打包到 JAR 文件中。
  2. 将您的 JAR 文件添加到 Data Grid Server 安装的 server/lib 目录中。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.