1.2. Data Grid 8.4.0 中的新功能


数据网格 8.4 提高了可用性、提高性能并提高安全性。了解.

jakarta EE API

Data Grid 8.4 distributes Jakarta EE 9+ based jars.如果您的应用程序需要 Jakarta 的依赖项,请使用 -jakarta 附加工件,例如:

pom.xml

<dependency>
   <groupId>org.infinispan</groupId>
   <artifactId>infinispan-client-hotrod-jakarta</artifactId>
</dependency>

有关 Jakarta EE 的信息,请参阅关于 Jakarta EE 的信息。

MemcachedDecoder 性能改进

MemcachedDecoder 不再阻止 Netty 线程:当线程池耗尽时防止死锁。

1.2.1. 热环客户端

热环是一种自定义二进制 TCP 协议,可为使用不同编程语言的客户端应用程序提供高性能数据访问。

支持使用 application/x-protostream的查询

Data Grid 8.4 中的热 Rod Node.js 客户端添加了对对 application/x-protostream 介质类型的查询的支持。配置 Hot Rod JS 客户端,使缓存中的值具有 application/x-protostream 介质类型,以便可以在其中执行查询。

现在,您可以在 JS 客户端支持的所有 Hot Rod 操作中使用 application/x-protostream 介质类型。如需更多信息,请参阅 Hot Rod Node.JS 客户端指南

每个集群的客户端智能配置

当您将 Hot Rod 客户端配置为使用多个数据网格集群时,您可以为每个集群使用不同的客户端智能功能。

如需更多信息,请参阅 Hot Rod Java 客户端指南

1.2.2. Data Grid Server

数据网格服务器在专用的 Java 虚拟机(JVM)中运行,并为远程缓存提供可扩展且容错集群。

Micrometer 指标

Data Grid 8.4 使用 Micrometer 库来收集指标。Data Grid Server 通过 指标端点 提供统计数据。您可以使用任何监控工具来收集统计数据,例如使用 Prometheus。Micrometer 指标替代 MicroProfile 指标的 SmallRye Metrics 实施。

改进了状态传输操作过程中的指标

当集群拓扑更改时,Data Grid 会为片段数量和事务片段的数量公开指标。数据网格会生成与 REST API 和 JMX API 兼容的时间指标。

RESP 协议端点

Data Grid Server 包含一个实现 RESP3 协议的实验性模块。RESP 端点允许 Redis 客户端连接到由一个或多个 Data Grid 支持的 RESP 服务器并执行缓存操作。

Data Grid 8.4 支持通常用于缓存操作的 Redis 命令子集。有关支持的命令列表,请参阅使用带有 Data Grid 文档的 RESP 协议端点。Data Grid 团队计划在后续版本中实施其他命令。

重要

RESP 协议端点作为技术预览提供。

基于角色的动态访问控制(RBAC)

基于角色的访问控制(RBAC)功能使用不同的权限级别来限制用户与 Data Grid 的交互。您可以修改用户角色,以编程方式或使用 Data Grid CLI 和 Data Grid 控制台来分配不同的权限。

如需更多信息,请参阅 具有基于角色的访问控制的安全授权

支持屏蔽和外部凭证

Data Grid Server 可让您使用屏蔽的密码和外部命令将密码添加到 Data Grid 服务器配置。

生成 JVM 堆转储的选项

您可以生成 JVM 堆上所有 live 对象的转储。数据网格在服务器数据目录中以 HPROF 格式生成堆转储文件,并以 JSON 格式回答文件的完整路径。

1.2.3. Data Grid Console

Data Grid Console 是一个图形用户界面,用于监控和管理远程缓存,在 8.4 中包括以下功能和增强功能:

缓存创建向导

打开 Cache Setup 选项卡,并让 Data Grid Console 向导指导您完成创建和配置缓存的过程。向导包括提示和工具,可帮助您创建缓存并启用数据网格功能,如索引、安全或持久性。完成所有步骤后,您可以使用 JSON、YAML 或 XML 格式下载配置并重复使用该文件。

缓存分发统计

Data Grid Console 在 缓存详情页面中 引入了 Metrics 选项卡。您可以查看和过滤节点的数据,如每个节点或内存用量的条目数量。

1.2.4. 查询 API

数据网格可让您使用 Ickle 查询语言来索引缓存和执行相关或全文本查询。

Hibernate ORM 6 支持

数据网格中的 Hibernate ORM 第二级缓存(2LC)实施已升级,以便使用 Hibernate 6。

添加以下依赖项:

pom.xml

<dependency>
  <groupId>org.infinispan</groupId>
  <artifactId>infinispan-hibernate-cache-v60</artifactId>
  <version>${version.infinispan}</version>
</dependency>

注意

由于 Jakarta EE 迁移,Data Grid 8.4 不支持 Hibernate 5。

1.2.5. 数据网格原生索引注解

此发行版本引入了新的索引注释:@ Basic、@ Keyword@TextEmbedded。这些新注解替换了 Hibernate Search 注解,这意味着不再需要为远程缓存添加 @ProtoDoc 注解来注解您的 Java 类。

使用新的原生索引注解,您可以直接注解实体。此外,您还可以将这些注解用于嵌入式和远程查询。

每个新注解都支持一组进一步描述实体的索引属性。

数据网格索引注解

@Basic
将此注解用于不需要任何文本转换或处理的编号和简短 字符串。支持 可排序的 搜索和 可项目 的属性。
@Keyword
将此注解用于 字符串。支持下列属性: 可搜索可预测、 排序和 规范化程序
@Text
将此注解用于较大的 字符串。支持 可搜索项目和 分析器 属性。
@Embedded
将此注解用于嵌入式索引并指定实体结构。NESTED 结构保留了原始对象关系结构,而 FLATTENED 结构可使父实体的 leaf 字段多值。

Poem.java

@Indexed
public class Poem {

private Author author;
private String description;
private Integer year;

@Embedded(includeDepth = 2, structure = Structure.NESTED)
public Author getAuthor() {
return author;
}

@Text(projectable = true, analyzer = "whitespace", termVector = TermVector.WITH_OFFSETS)
public String getDescription() {
return description;
}

@Basic(projectable = true, sortable = true, indexNullAs = "1800")
public Integer getYear() {
return year;
}
}

索引启动模式

您可以配置 Data Grid 以自动执行操作,以确保索引与缓存中的数据一致。

启动模式

none
默认情况下,没有索引操作。
清除
在缓存启动时清除索引。此操作期间将无法使用缓存。
reindex
在缓存启动时重建索引。
auto
自动清除或重新索引缓存。如果数据是易失性,并且索引是持久的,则缓存会在启动时清除。如果数据持久,且索引是易失性,则缓存在启动时会重新索引。

清除模式配置

<distributed-cache>
  <indexing storage="filesystem" startup-mode="purge">
    <!-- Additional indexing configuration goes here. -->
  </indexing>
</distributed-cache>

动态索引模式更新

只要您的更改与之前的模式兼容,就可以更新模式,而无需重新索引和停机。数据网格仅保留现有的索引和更新模式。

您可以使用以下方法之一更新 schema:

  • 调用 updateIndexSchema () 方法,以以编程方式从 Hot Rod Java 客户端更新模式。

    remoteCacheManager.administration().updateIndexSchema("MyCache");
    提示

    对于远程缓存,您还可以使用 update-schema 命令从 Data Grid Console 更新 schema。

  • 使用 POST 请求更新 schema。
POST .../v2/caches/{myCache}/search/indexes?action=updateSchema

查询返回的结果限制

Data Grid 添加 default-max-results 属性,用于限制查询返回的结果数量。default-max-results 属性的默认值为 100。限制查询返回的结果数量可显著提高没有明确限制的查询的性能。

1.2.6. Data Grid 命令行界面(CLI)

数据网格 CLI 允许您为远程缓存脚本和自动化管理操作。

改进了安全验证

您可以使用 Data Grid CLI 使用客户端证书身份验证连接到 Data Grid Server。

将命令应用到所有缓存

数据网格 CLI 可让您使用 --all-caches-a 选项,将命令应用到所有缓存。例如,如果您执行以下命令,Data Grid 显示所有缓存的备份位置状态:

[//containers/default]> site status --all-caches --site=NYC

如需更多信息,请参阅使用 Data Grid 命令行界面

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.