第 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) .getOrCreateCache("myPermanentCache", "org.infinispan.DIST_SYNC");
.administration()
.withFlags(AdminFlag.PERMANENT)
.getOrCreateCache("myPermanentCache", "org.infinispan.DIST_SYNC");
- 1
AdminFlag.PERMANENT
默认是启用的,以确保重新启动后缓存。
在创建缓存时,您不需要设置此标志。但是,您必须将持久性存储单独添加到 Data Grid 中,以便数据重启后保留,例如:
ConfigurationBuilder b = new ConfigurationBuilder(); b.persistence() .addSingleFileStore() .location("/tmp/myDataStore") .maxEntries(5000);
ConfigurationBuilder b = new ConfigurationBuilder();
b.persistence()
.addSingleFileStore()
.location("/tmp/myDataStore")
.maxEntries(5000);
volatile 缓存
.administration() .withFlags(AdminFlag.VOLATILE) .getOrCreateCache("myTemporaryCache", "org.infinispan.DIST_SYNC");
.administration()
.withFlags(AdminFlag.VOLATILE)
.getOrCreateCache("myTemporaryCache", "org.infinispan.DIST_SYNC");
Data Grid 8 为服务器安装提供缓存模板,您可以使用它来创建带有推荐的设置的缓存。
您可以获取可用缓存模板列表,如下所示:
通过 CLI 使用
Tab
自动完成功能:[//containers/default]> create cache --template=
[//containers/default]> create cache --template=
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用 REST API:
GET 127.0.0.1:11222/rest/v2/cache-managers/default/cache-configs/templates
GET 127.0.0.1:11222/rest/v2/cache-managers/default/cache-configs/templates
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.1.1. 缓存编码 复制链接链接已复制到粘贴板!
当您创建远程缓存时,您应该为键和值配置 MediaType。配置 MediaType 为您的数据保证存储格式。
要对缓存进行编码,您可以在配置中指定 MediaType。除非您有其他要求,否则应使用 ProtoStream,它以语言中立、向后兼容的格式存储数据。
<encoding media-type="application/x-protostream"/>
使用编码的分布式缓存配置
如果您不对远程缓存进行编码,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.
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
org.infinispan:type=CacheManager,name="default",component=CacheContainerHealth
Data Grid Server 还通过 REST 端点和 Data Grid 控制台公开 Health API。
7.x | 8.x | 描述 |
---|---|---|
|
| 表示缓存按预期运行。 |
|
| 表示缓存处于重新平衡状态,但如预期运行。 |
|
| 表示缓存无法按预期工作,可能需要进行故障排除。 |
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