第 5 章 配置数据容器
配置数据容器,其中 Data Grid 存储条目。指定缓存条目的编码,将数据保存在非堆内存中,并使用驱除或过期策略来只在内存中保留活动条目。
5.1. 为 Data Grid Caches 配置编码
定义 MediaType,Data Grid 在写入和读取缓存时用于对数据进行编码。
当您定义 MediaType 时,您可以将数据格式指定为 Data Grid。
如果要使用 Data Grid Console、Hot Rod 客户端和 REST 客户端,请指定 application/x-protostream
MediaType,以便 Data Grid 以 Protobuf 格式对数据进行编码。
流程
为 Data Grid 缓存配置中的键和值指定 MediaType。
-
声明:设置
encoding
属性。 -
以编程方式:使用
encoding ()
方法。
-
声明:设置
声明性示例
- 对键和值使用相同的编码:
<local-cache> <encoding media-type="application/x-protostream"/> </local-cache>
- 对键和值使用不同的编码:
<cache> <encoding> <key media-type="application/x-java-object"/> <value media-type="application/xml; charset=UTF-8"/> </encoding> </cache>
编程示例
- 对键和值使用相同的编码:
ConfigurationBuilder cfg = new ConfigurationBuilder(); cfg .encoding() .mediaType("application/x-protostream") .build());
- 对键和值使用不同的编码:
ConfigurationBuilder cfg = new ConfigurationBuilder(); cfg.encoding().key().mediaType("text/plain"); cfg.encoding().value().mediaType("application/json");
5.1.1. 以 Protobuf 格式存储数据
将数据存储在缓存中作为 Protobuf 编码的条目提供了一个独立于平台的配置,可让您从任何客户端执行缓存操作。
当您为 Data Grid Search 配置索引时,Data Grid 会自动使用 application/x-protostream
介质类型存储键和值。
流程
将
application/x-protostream
指定为键和值的 MediaType,如下所示:<distributed-cache name="mycache"> <encoding> <key media-type="application/x-protostream"/> <value media-type="application/x-protostream"/> </encoding> </distributed-cache>
- 配置您的客户端。
热 Rod 客户端必须注册协议缓冲区模式定义,以描述实体和客户端 marshallers。
数据网格在 application/x-protostream
和 application/json
之间转换,因此 REST 客户端只需要发送以下标头来读取和写入 JSON 格式的数据:
-
accept:用于读取操作的 application/json
。 -
content-Type: 用于写入操作的 application/json
。