搜索

15.4.3.2. 指定缓存配置

download PDF

以大写字母(所有大写)中的环境变量的前缀指定缓存名称,否则配置不会生效。

例如,您创建两个单独的缓存实例: MyCacheMYCACHE。然后,您将 MyCache_CACHE_TYPE=replicated 设置为配置 MyCache 实例。这个配置不会生效。但是,如果您设置了 MYCACHE_CACHE_TYPE=replicated,则配置对 MyCacheMYCACHE 实例都生效。

${CACHE_NAME}_CACHE_TYPE
决定此缓存应该是分布式还是复制。您可以指定 分布式 (默认) 或复制
${CACHE_NAME}_CACHE_START

配置缓存的启动方式。指定以下之一:

  • 在服务或部署请求时,LAZY 启动缓存。这是默认值。
  • EAGER 在服务器启动时启动缓存。
${CACHE_NAME}_CACHE_BATCHING
启用这个缓存的调用批处理。值为 truefalse (默认)。
${CACHE_NAME}_CACHE_STATISTICS
配置缓存以收集统计信息。值为 true (默认)或 false。您可以将值设为 false 以提高性能。
${CACHE_NAME}_CACHE_MODE

设置集群缓存模式。指定以下之一:

  • 用于异步操作的 ASYNC
  • 用于同步操作的 SYNC
${CACHE_NAME}_CACHE_QUEUE_SIZE
设置当缓存为 ASYNC 模式时清空复制队列的阈值。默认值为 0( 禁用lushing)。
${CACHE_NAME}_CACHE_QUEUE_FLUSH_INTERVAL
指定在 ASYNC 模式中清除复制队列的线程的 wakeup 时间(以毫秒为单位)。默认值为 10
${CACHE_NAME}_CACHE_REMOTE_TIMEOUT
以毫秒为单位指定超时,以便在在 SYNC 模式中进行远程调用时等待确认。如果达到超时,则远程调用将中止并抛出异常。默认值为 17500
${CACHE_NAME}_CACHE_OWNERS
指定每个缓存条目的集群范围副本数。默认值为 2
${CACHE_NAME}_CACHE_SEGMENTS
指定每个集群的哈希空间片段数量。建议的值是 10 * 集群大小。默认值为 80
${CACHE_NAME}_CACHE_L1_LIFESPAN
指定 L1 缓存中的最大生命周期span(以毫秒为单位)。默认值为 0( 禁用L1)。
${CACHE_NAME}_CACHE_MEMORY_EVICTION_TYPE

定义缓存中的条目的最大限值。您可以设置以下值:

  • COUNT 测量缓存中的条目数量。当计数超过最大值时,Data Grid 会驱除未使用的条目。
  • MEMORY 测量缓存中所有条目的内存量。当内存量超过最大值时,Data Grid 会驱除未使用的条目。
${CACHE_NAME}_CACHE_MEMORY_STORAGE_TYPE

定义数据网格如何在缓存中存储条目。您可以设置以下值:

存储类型描述驱除类型策略

对象

将条目作为对象存储在 Java 堆中。这是默认的存储类型。

数量

TinyLFU

二进制(二进制)

将条目作为 bytes[] 存储在 Java 堆中。

COUNTMEMORY

TinyLFU

off-heap

将条目作为 bytes[] 存储在 Java 之外的原生内存中。

COUNTMEMORY

LRU

${CACHE_NAME}_CACHE_MEMORY_EVICTION_SIZE

配置驱除启动前缓存的大小。将值设置为大于零的数字。

  • 对于 COUNT,大小是缓存在驱除开始前可以容纳的最大条目数。
  • 对于 MEMORY,其大小是缓存在驱除启动前可以从内存中获取的最大字节数。例如,值设为 10000000000 为 10 GB。

    尝试不同的缓存大小以确定最佳设置。缓存大小过大可能会导致 Data Grid 耗尽内存。同时,缓存大小太小了可用内存。

    注意

    如果您配置 JDBC 存储,当您将驱除大小设置为大于零的值时,会自动启用 passivation。

${CACHE_NAME}_CACHE_MEMORY_EVICTION_STRATEGY

控制数据网格执行驱除的方式。您可以设置以下值:

策略描述

NONE

数据网格不会驱除条目。这是默认设置,除非您配置驱除。

删除

数据网格从内存中删除条目,以便缓存不会超过配置的大小。这是配置驱除时的默认设置。

手动

数据网格不执行驱除。通过从 Cache API 调用 evict() 方法手动进行驱除。

例外

如果这样做超过配置的大小,则 data Grid 不会将新条目写入缓存中。Data Grid 丢弃了 ContainerFullException,而不是向缓存写入新条目。

${CACHE_NAME}_CACHE_MEMORY_OFF_HEAP_ADDRESS_COUNT

指定哈希映射中可用的指针数量,以防止在使用 OFFHEAP 存储时发生冲突。防止哈希映射中的冲突提高了性能。

将值设为大于缓存条目数的数字。默认情况下,address-count 为 2^20,或 1048576。参数始终向上取为 2 的电源。

${CACHE_NAME}_CACHE_EXPIRATION_LIFESPAN
指定条目在集群范围过期后的最大生命周期span(以毫秒为单位)。默认值为 -1( 条目永不过期)。
${CACHE_NAME}_CACHE_EXPIRATION_MAX_IDLE
指定缓存条目在缓存中维护的最大空闲时间(以毫秒为单位)。如果超过空闲时间,则条目会在整个集群到期。默认值为 -1( 禁用过期)。
${CACHE_NAME}_CACHE_EXPIRATION_INTERVAL
指定间隔(以毫秒为单位),以毫秒为单位,从内存和任何缓存存储中清除过期的条目。默认值为 5000。设置 -1 可禁用过期。
${CACHE_NAME}_JDBC_STORE_TYPE

设置要配置的 JDBC 存储的类型。您可以设置以下值:

  • 字符串
  • 二进制(二进制)
${CACHE_NAME}_JDBC_STORE_DATASOURCE

定义数据源的 jndiname。

例如: MYCACHE_ JDBC_STORE_DATASOURCE=java:jboss/datasources/ExampleDS

${CACHE_NAME}_KEYED_TABLE_PREFIX
定义在生成缓存条目表名称时使用的缓存名称前的前缀。defaule 值为 ispn_entry
${CACHE_NAME}_CACHE_INDEX

设置缓存的索引模式。您可以设置以下值:

  • NONE 这是默认值。
  • 本地
  • ALL
${CACHE_NAME}_INDEXING_PROPERTIES

指定要传递给索引系统的属性列表。

例如: MYCACHE_INDEXING_PROPERTIES=default.directory_provider=ram

${CACHE_NAME}_CACHE_SECURITY_AUTHORIZATION_ENABLED
为此缓存启用授权检查。值为 truefalse (默认)。
${CACHE_NAME}_CACHE_SECURITY_AUTHORIZATION_ROLES

设置访问此缓存所需的角色。

例如: MYCACHE_CACHE_SECURITY_AUTHORIZATION_ROLES=admin, reader, writer

${CACHE_NAME}_CACHE_PARTITION_HANDLING_WHEN_SPLIT

配置策略,以便在网络事件相互隔离节点时处理集群中节点间分区的策略。分区作为独立集群运行,直到 Data Grid 合并缓存条目以调整单个集群。您可以设置以下值:

分区处理策略描述

ALLOW_READ_WRITES

来自任何分区的节点都可以读取或写入缓存条目。这是默认值。

DENY_READ_WRITES

如果出现以下情况,节点进入 degraded 模式:

* 分区中的一个或者多个散列空间片段没有所有者。所有者是缓存条目的集群范围副本数。

* 分区从最新的稳定集群拓扑中少于一半的节点。

在降级模式中,只有同一分区中的节点才能读取或写入缓存条目。缓存条目的所有所有者或副本必须存在于同一分区中,否则,读写操作将失败,并显示 AvailabilityException

ALLOW_READS

节点与 DENY_READ_WRITES 策略类似。来自任何分区的节点都可以读取缓存条目。

在降级模式中,只有同一分区中的节点才能写入缓存条目。缓存条目的所有所有者或副本必须存在于同一分区中,否则写入操作会失败并显示 AvailabilityException

${CACHE_NAME}_CACHE_PARTITION_MERGE_POLICY

配置 Data Grid 如何在合并分区时解析缓存条目间的冲突。您可以设置以下值:

合并策略描述

NONE

合并分区时不会解决冲突。这是默认值。

PREFERRED_ALWAYS

始终使用 preferredEntrypreferredEntry 是缓存条目的主副本,它位于包含最多节点的分区中。如果节点数量相等,则 preferredEntry 是分区中带有最高拓扑 ID 的缓存条目,这意味着拓扑更为近期。

PREFERRED_NON_NULL

如果值为(non-null),请使用 preferredEntry。如果 preferredEntry 没有值,请使用 otherEntries 中定义的第一个条目。

REMOVE_ALL

如果存在冲突,从缓存中删除条目(键和值)。

${CACHE_NAME}_STATE_TRANSFER_TIMEOUT

设置时间(以毫秒为单位),以等待集群中其他缓存实例将状态转移到缓存。如果其他缓存实例在超时发生前没有传输状态,应用程序会抛出异常并中止启动。默认值为 240000 (4 分钟)。

您必须使用自定义模板来设置此环境变量。如果您在 OpenShift 模板的默认 Data Grid 中设置状态传输超时,则不会生效。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.