第 1 章 配置缓存编码


了解如何使用不同介质类型配置 Data Grid 缓存,以及编码如何影响您可以使用 Data Grid 的方法。

1.1. 缓存编码

编码是由介质类型标识的格式,Data Grid 用于将条目(键/值对)存储在缓存中。

远程缓存

Data Grid Server 使用在缓存配置中设置的编码将条目存储在远程缓存中。

hot Rod 和 REST 客户端包括一个介质类型,其中包含他们向 Data Grid 服务器发出的每个请求。为了处理使用不同介质类型的多个客户端,Data Grid 服务器会将数据按需转换为缓存配置中设置的介质类型。

如果远程缓存没有任何编码配置,Data Grid 服务器会在没有任何介质类型信息的情况下将键和值存储为通用 byte[],这可能会在为客户端请求不同格式转换数据时造成意外的结果。

使用 ProtoStream 编码

当客户端请求包含无法转换为或从缓存配置中设置的介质类型时,数据网格服务器会返回错误。

如果要使用多个客户端,如 Data Grid Console 或 CLI、Hot Rod 或 REST,建议使用 application/x-protostream 介质类型配置缓存编码。ProtoStream 编码还允许您使用服务器端任务,并对远程缓存执行索引查询。

嵌入式缓存

默认情况下,数据仓库将条目存储在嵌入式缓存中,存为旧 Java 对象(POJO)。

对于集群嵌入式缓存,Data Grid 需要将所有 POJO 回一个字节阵列,该数组可以在节点间复制,然后取消合并回 POJO。这意味着,如果您没有配置另一个 marshaller,则必须确保数据仓库可以使用 ProtoStream marshaller 序列化您的 POJO。

注意

如果您将 mutable POJO 存储在嵌入式缓存中,则应始终使用新的 POJO 实例更新值。例如,如果您将 HashMap 存储为键/值对,Data Grid 集群的其他成员不会看到对映射的任何本地修改。另外,如果在 Data Grid 编译对象的同时更新 Map 实例,则可能会出现 ConcurrentModificationException

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.