第 3 章 迁移 Data Grid 配置
查找影响迁移到 Data Grid 8 的 Data Grid 配置的更改。
3.1. Data Grid 缓存配置
默认情况下,Data Grid 8 提供空的缓存容器。当您启动 Data Grid 时,它会实例化一个缓存管理器,以便在运行时创建缓存。
但是,与之前的版本相比,开箱即用"默认"缓存。
在 Data Grid 8 中,通过 CacheContainerAdmin
API 创建的缓存是永久的,以确保集群重启后保留。
永久缓存
.administration()
.withFlags(AdminFlag.PERMANENT) 1
.getOrCreateCache("myPermanentCache", "org.infinispan.DIST_SYNC");
- 1
AdminFlag.PERMANENT
默认是启用的,以确保重新启动后缓存。
在创建缓存时,您不需要设置此标志。但是,您必须将持久性存储单独添加到 Data Grid 中,以便数据重启后保留,例如:
ConfigurationBuilder b = new ConfigurationBuilder(); b.persistence() .addSingleFileStore() .location("/tmp/myDataStore") .maxEntries(5000);
volatile 缓存
.administration() .withFlags(AdminFlag.VOLATILE) 1 .getOrCreateCache("myTemporaryCache", "org.infinispan.DIST_SYNC"); 2
Data Grid 8 为服务器安装提供缓存模板,您可以使用它来创建带有推荐的设置的缓存。
您可以获取可用缓存模板列表,如下所示:
通过 CLI 使用
Tab
自动完成功能:[//containers/default]> create cache --template=
使用 REST API:
GET 127.0.0.1:11222/rest/v2/cache-managers/default/cache-configs/templates
3.1.1. 缓存编码
当您创建远程缓存时,您应该为键和值配置 MediaType。配置 MediaType 为您的数据保证存储格式。
要对缓存进行编码,您可以在配置中指定 MediaType。除非您有其他要求,否则应使用 ProtoStream,它以语言中立、向后兼容的格式存储数据。
<encoding media-type="application/x-protostream"/>
使用编码的分布式缓存配置
<infinispan> <cache-container> <distributed-cache name="myCache" mode="SYNC"> <encoding media-type="application/x-protostream"/> ... </distributed-cache> </cache-container> </infinispan>
如果您不对远程缓存进行编码,Data Grid 服务器会记录以下信息:
WARN (main) [org.infinispan.encoding.impl.StorageConfigurationManager] ISPN000599: Configuration for cache 'mycache' does not define the encoding for keys or values. If you use operations that require data conversion or queries, you should configure the cache with a specific MediaType for keys or values.
在以后的版本中,对进行数据转换的操作需要缓存编码;例如,缓存索引和搜索数据容器、远程任务执行、读取和写入来自 Hot Rod 和 REST 端点的不同格式的数据,以及使用远程过滤器、转换器和监听器。
3.1.2. 缓存健康状态
Data Grid 7.x 包括一个 Health Check API,它返回集群的健康状况以及其中的缓存。
Data Grid 8 还提供 Health API。对于嵌入式和服务器安装,您可以使用以下 MBean 通过 JMX 访问 Health API:
org.infinispan:type=CacheManager,name="default",component=CacheContainerHealth
Data Grid Server 还通过 REST 端点和 Data Grid 控制台公开 Health API。
7.x | 8.x | 描述 |
---|---|---|
|
| 表示缓存按预期运行。 |
|
| 表示缓存处于重新平衡状态,但如预期运行。 |
|
| 表示缓存无法按预期工作,可能需要进行故障排除。 |
N/A |
| 在 8.2 中添加,以指示缓存无法在提供的配置中启动。 |
其他资源
3.1.3. 对 Data Grid 8.1 配置模式的更改
本主题列出了 8.0 和 8.1 之间 Data Grid 配置模式的更改。
新的和修改的元素和属性
-
堆栈
添加了对 inline JGroups 堆栈定义的支持。 -
stack.combine
和stack.position
属性允许您覆盖和修改 JGroups 堆栈定义。 -
指标
允许您配置 Data Grid 导出与 Eclipse MicroProfile Metrics API 兼容的指标。 -
通过
context-initializer
,您可以指定一个SerializationContextInitializer
实现,用于初始化用户类型的基于 Protostream 的 marshaller。 -
key-transformers
可让您注册转换程序,将自定义密钥转换为 String 进行索引。 -
现在,
统计信息
默认为 "false"。
弃用的元素和属性
以下元素和属性现已弃用:
-
off-heap
元素的address-count
属性。 -
事务
元素的protocol
属性。 -
jmx
元素的duplicate-domains
属性。 -
advanced-externalizer
-
custom-interceptors
-
state-transfer-executor
-
transaction-protocol
删除的元素和属性
以下元素和属性已在上一发行版本中弃用,现已被删除:
-
deadlock-detection-spin
-
兼容性
-
write-skew
-
版本控制
-
data-container
-
驱除
-
eviction-thread-policy
3.1.4. 对 Data Grid 8.2 配置模式的更改
本主题列出了 8.1 和 8.2 之间 Data Grid 配置模式的更改。
修改的元素和属性
-
白名单
更改为allow-list
-
角色
现在是定义的用户角色和安全授权权限的子元素。 -
为自动
SerializationContextInitializer
注册更新了context-initializer
。
如果您的配置不包含context-initializer
元素,则java.util.ServiceLoader
机制会自动发现 classpath 上所有SerializationContextInitializer
实现,并加载它们。 -
对于
indexed-entity
元素,minOccurs
属性的默认值从0
改为1
。
新元素和属性
-
属性添加到
transport
元素中,允许您传递 name/value 传输属性。 -
添加至
security
元素的cache-size
和cache-timeout
属性来配置访问控制列表(ACL)缓存的大小和超时。 -
index-reader
、index-writer
和index-merge
子元素添加到indexing
元素。 -
存储
属性添加到指定索引
存储选项的 indexing 元素中。 -
添加到 indexing 元素中的
path
属性,用于指定索引
使用文件系统存储时的目录。 -
bias-acquisition
属性添加到scattered-cache
元素中,该元素控制节点何时可以在条目上获取 bias。 -
bias-lifespan
属性添加到scattered-cache
元素中,以毫秒为单位指定节点可以保持获取的时间。 -
添加至 backup 元素的
merge-policy
属性指定解析与跨站点复制冲突的算法。 -
模式属性
添加到备份
的state-transfer
子元素中。mode
属性配置手动或自动进行跨站点复制状态传输。 -
INSERT_ABOVE
、INSERT_BEFORE
和INSERT_BELOW
属性添加到stack.combine
属性中,以使用继承扩展 JGroups 堆栈。
弃用的元素和属性
Data Grid 8.2 中没有元素或属性已弃用。
删除的元素和属性
Data Grid 8.2 中不会删除元素或属性。
3.1.5. 对 Data Grid 8.3 配置模式的更改
本主题列出了 8.2 和 8.3 之间 Data Grid 配置模式的更改。
模式更改
-
urn:infinispan:config:store:soft-index
命名空间不再可用。
修改的元素和属性
-
urn:infinispan:config
命名空间中的file-store
元素默认为使用 soft-index 文件缓存存储。 -
single-file-store
元素包含在urn:infinispan:config
命名空间中,但现已弃用。
新元素和属性
-
现在,索引和数据元素可用于配置 Data Grid 如何使用
file-store
元素存储基于文件的缓存存储的索引
和数据
。 -
file-store
元素的open-files-limit
和compaction-threshold
属性。 集群属性
添加到远程站点和
元素中,允许您为跨站点通信定义全局集群名称。远程站点
注意使用集群属性指定的全局
集群名称
必须在所有站点都相同。添加到
metrics
元素中的accurate-size
属性,以启用使用currentNumberOfEntries
统计的数据集的计算。重要从 Data Grid 8.3 开始,
currentNumberOfEntries
统计返回值为 -1,因为它是要执行的昂贵的操作。-
touch
属性添加到expiration
元素中,用于控制在有最大闲置过期状态的集群缓存中更新时间戳的方式。默认值为SYNC
,属性仅适用于使用同步复制的缓存。为使用异步复制的缓存异步更新时间戳。 lifespan
属性添加到用于附加过期值的强
数属性中,以毫秒为单位。默认值为-1,
这意味着强大的一致的计数器永远不会过期。注意强大的
计数器的 lifespan 属性目前作为技术预览提供。
弃用的元素和属性
以下元素和属性现已弃用:
-
single-file-store
元素。 -
file-store
元素的max-entries
和path
属性。
删除的元素和属性
Data Grid 模式中不再提供以下元素和属性:
-
transport
元素的remote-command-executor
属性。 -
distributed-cache
元素的capacity
属性。
3.1.6. 对 Data Grid 8.4 配置模式的更改
本主题列出了 8.3 和 8.4 之间 Data Grid 配置模式的更改。
模式更改
新元素和属性
-
default-max-results
属性添加到query
元素中,允许您限制查询返回的结果数量。适用于索引、非索引和混合查询。 -
startup-mode
属性,允许您定义在缓存启动时数据网格应执行哪些操作。选项会清除
、reindex
、auto
或none
。默认值为none
。 -
Raft-members
属性可让您定义由空格分隔的 raft 成员列表。
弃用的元素和属性
以下元素和属性现已弃用:
-
scattered-cache
元素现已弃用
删除的元素和属性
Data Grid 模式中不再提供以下元素和属性:
-
fetch-state
store 属性不再可用。您可以从 xml 配置中删除属性。
3.1.7. 对 Data Grid 8.5 配置模式的更改
本主题列出了在 8.4 和 8.5 之间对 Data Grid 配置模式的更改。
新元素和属性
-
添加到
cache-container
的追踪
元素可让您配置追踪,并可通过 OpenTelemetry 收集器收集 trace。 -
group-only-mapping
属性添加到授权
中。使用此属性指定principal-to-role 映射
是否仅适用于组主体或用户主体。默认值true
仅将principal-to-role 映射
应用到组主体。将值设为false
以将映射应用到这两个主体类型。 -
在角色
中添加description
属性可让您定义角色的描述。 -
schema-compatibility
属性添加到序列化
中,可让您指定更新模式时执行的兼容性验证。 -
unclean-shutdown-action
属性添加到global-state
,可让您定义在持久全局状态中找到 dangling 锁定文件时执行的操作,表示该节点的未清理关闭。默认值为FAIL
。 -
添加到索引的
index-sharding
元素
。分片是将索引数据拆分为多个较小的索引,称为分片。在处理大量数据时,分片提高了性能。分片默认是禁用的。 -
添加到索引中的
indexing-mode
元素可让您定义如何将缓存操作传播到索引中。默认情况下,对缓存的所有更改都会立即应用到索引中。
-
添加到
索引
中的追踪
元素可让您配置追踪,并可通过 OpenTelemetry 收集器收集 trace。 -
添加到
缓存
的别名
属性,可让您为缓存定义零个或多个别名名称。 -
添加到
缓存的
统计
属性,用于定义缓存是否应该收集统计信息。保持禁用统计数据收集以获得最佳性能。
弃用的元素和属性
这个版本没有弃用。
删除的元素和属性
Data Grid 模式中不再提供以下元素和属性:
-
scattered-cache
元素已被删除。 -
property
元素已从缓存
中删除。 -
auto-config
元素已从索引中删除
。 -
statistics-available
属性已从索引中删除
。 -
connection-interval
属性(如 )从持久性
中删除。