Data Grid Code Tutorials


Red Hat Data Grid 8.5

了解如何使用 Data Grid 功能

Red Hat Customer Content Services

摘要

为远程缓存和嵌入式缓存运行代码教程,以演示各种数据网格功能和使用情况模式。

Red Hat Data Grid

Data Grid 是一个高性能分布式内存数据存储。

无架构数据结构
将不同对象存储为键值对的灵活性。
基于网格的数据存储
旨在在集群中分发和复制数据。
弹性扩展
动态调整节点数量,以便在不中断服务的情况下满足需求。
数据互操作性
从不同端点在网格中存储、检索和查询数据。

Data Grid 文档

红帽客户门户网站中提供了 Data Grid 的文档。

Data Grid 下载

访问红帽客户门户上的 Data Grid 软件下载

注意

您必须有一个红帽帐户才能访问和下载数据中心软件。

使开源包含更多

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。详情请查看 CTO Chris Wright 的信息

第 1 章 远程缓存

部署多个 Data Grid 服务器实例以创建远程缓存集群,为您提供容错和可扩展数据层,具有 Hot Rod 和 REST 客户端中的高速度访问。

1.1. 远程缓存教程

要运行这些教程,至少需要一个本地运行的 Data Grid 服务器实例。每个教程都会尝试使用 admin/password 凭证连接到 localhost:11222 中的正在运行的服务器。但是,如果找到了 Docker 实例,且服务器没有运行,教程将使用 Testcontainers 启动本地服务器。

您可以下载 发布并运行以下命令:

$ ./bin/cli.sh user create admin -p "password"
$ ./bin/server.sh
注意

默认情况下,Data Grid 服务器启用身份验证和授权。创建名为 admin 的用户,以便您管理对 Data Grid Server 的访问权限。

构建并运行远程缓存指南

您可以直接在 IDE 中或从命令行中构建并运行远程缓存教程,如下所示:

$ ./mvnw -s /path/to/maven-settings.xml clean package exec:exec

1.2. 热 Rod Java 客户端教程

  • 数据网格至少需要 Java 11。但是,在需要 Java 8 的应用程序中运行的 Hot Rod Java 客户端可能会继续使用旧版本的客户端库。
教程链接描述

远程缓存使用示例

演示远程分布式缓存的工作方式的最简单代码示例。

每个缓存配置

在连接到 Data Grid 服务器时演示如何动态配置缓存。

接近缓存

演示如何配置近缓存以提高远程缓存中的读取性能。

Cache Admin API

演示如何使用管理 API 动态创建缓存和缓存模板。

编码

演示缓存如何工作的编码。

客户端监听程序

使用 Client Listeners 在远程缓存中检测数据何时变化。

查询

演示如何查询远程缓存值。

持续查询

演示如何使用连续查询和远程缓存。

Transactions

演示远程事务的工作方式。

安全缓存

演示如何配置启用授权的缓存。

TLS 授权

演示如何使用 TLS 授权连接到 Data Grid 服务器。

计数器

演示远程计数器的工作方式。

Multimap

演示远程多图的工作方式。

任务执行

演示如何注册服务器任务以及如何从 Hot Rod 客户端执行它们。

JUnit 5 和 Testcontainers

演示如何使用 Data Grid 和 JUnit 5 扩展。

Persistence

演示如何使用数据网格和持久缓存。

Redis Client

演示如何使用 Data Grid 和 Redis 客户端来读取和写入使用 Resp 协议。

Reactive API

演示了如何将 Data Grid 与基于 Mutiny 的被动 API 搭配使用。

Data Grid 文档

您可以在以下文档中找到 Hot Rod Java 客户端的更多资源:

第 2 章 嵌入式缓存

将 Data Grid 作为您的 Java 项目的依赖,并使用嵌入式缓存来加快应用程序性能,并为您提供处理复杂用例的能力。

2.1. 嵌入式缓存教程

您可以直接在 IDE 中运行嵌入的缓存教程,也可以从命令行运行,如下所示:

$ ./mvnw -s /path/to/maven-settings.xml clean package exec:exec
教程链接描述

分布式缓存

演示分布式缓存的工作方式。

复制的缓存

演示复制缓存的工作方式。

无效的缓存

演示 Invalidated Caches 的工作原理。

Transactions

演示事务的工作方式。

演示分布式流的工作方式。

JCACHE 集成

演示 JCache 的工作原理。

功能映射

演示 Functional Map API 的工作原理。

Map API

演示 Map API 如何与 Data Grid 缓存一起工作。

Multimap

演示如何使用 Multimap。

queries

使用 Data Grid Query 对缓存值执行全文本查询。

集群 Listeners

使用 Clustered Listeners 在嵌入式缓存中检测数据何时变化。

计数器

演示如何使用嵌入式 Clustered Counter。

集群锁定

演示如何使用嵌入式集群锁定。

集群执行

演示如何使用嵌入式 Clustered Counter。

Data Grid 文档

您可以在以下文档中找到有关嵌入式缓存的更多信息:

2.2. Kubernetes 和 Openshift 指南

本教程包含如何在 Kubernetes/OpenShift 中运行 Infinispan 库模式(作为微服务)的说明。

先决条件:在后台运行的 Maven 和 Docker 守护进程。

先决条件
  • 正在运行的 Openshift 或 Kubernetes 集群
构建教程

本教程使用 maven 命令构建:

./mvnw package

请注意,target/ 目录包含其他目录,如 docker (带有生成的 Dockerfile)和 classes/META-INF/jkube 以及 Kubernetes 和 OpenShift 部署模板。

提示

如果 Docker 守护进程停机,构建将省略处理 Dockerfile。使用 docker profile 手动打开它。

为 Kubernetes 部署教程

这由 JKube maven 插件处理,只需调用:

mvn k8s:build k8s:push k8s:resource k8s:apply -Doptions.image=<IMAGE_NAME> 1
1
IMAGE_NAME 必须替换为要部署到 Kubernetes 的容器的 FQN。此容器必须在您有权推送到的存储库中创建,并可从 Kubernetes 集群内访问。
查看和扩展

这时,一切都应启动并运行。现在登录 OpenShift 或 Kubernetes 集群并扩展应用程序

kubectl scale --replicas=3  deployment/$(kubectl get rs --namespace=myproject | grep infinispan | awk '{print $1}') --namespace=myproject
取消部署教程

这由 JKube maven 插件处理,只需调用:

mvn k8s:undeploy

第 3 章 Spring 和 Spring Boot

3.1. Spring 和 Spring Boot 指南

注意

这些代码教程使用 Data Grid Server 并至少需要一个正在运行的实例。

运行 Spring 示例

可以在没有 Spring Boot 的情况下使用 Spring 运行两个简单的教程:

  • 测试缓存
$ ./mvnw -s /path/to/maven-settings.xml package exec:exec@spring-caching
  • 测试注解
$ ./mvnw -s /path/to/maven-settings.xml package exec:exec@spring-annotations

要运行 Spring Boot 指南,请使用以下命令:

$ ./mvnw -s /path/to/maven-settings.xml spring-boot:run

显示操作器统计信息

在浏览器中导航到 http://localhost:8080/actuator/metrics 以显示可用指标列表。缓存指标以 "cache"作为前缀。使用标签显示每个缓存的每个指标。例如,对于 basque-names 缓存中的"puts"统计:

http://localhost:8080/actuator/metrics/cache.puts?tag=name:basque-names

使用 Prometheus 收集统计信息

此项目中的 prometheus.yml 文件包含 host.docker.internal 绑定,它允许 Prometheus 访问 Spring actuator 公开的指标。

将以下命令中的 YOUR_PATH 值改为运行 Prometheus 的目录,然后运行:

Podman

$ podman run -d --name=prometheus -p 9090:9090 -v YOUR_PATH/integrations/spring-boot/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus --config.file=/etc/prometheus/prometheus.yml

教程链接描述

Spring Boot 和 Spring Cache 远程模式

演示如何将 Spring Caches 与 Spring Boot 和 Data Grid Server 搭配使用。

Spring Boot、Spring Cache、Reactor 和 Infinispan Server

演示如何将 Spring Caches 与 Spring Boot Reactor 和 Data Grid Server 搭配使用。

Spring Boot 和 Spring Session 远程模式

演示如何在 Spring Boot 和 Data Grid Server 中使用 Spring Session。

Spring Boot 和 Spring Cache 嵌入式模式

演示如何在 Spring Boot 和 Data Grid Embedded 中使用 Spring Cache。

Spring Boot 和 Spring Session 嵌入式模式

演示如何将 Spring Session 与 Spring Boot 和 Data Grid Embedded 一起使用。

在没有 Spring Boot 的情况下嵌入的 Spring 缓存

演示如何在没有 Spring Boot 的情况下使用 Spring Cache 和 Data Grid Embedded。

Data Grid 文档

您可以在以下文档中找到更多资源:

法律通告

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubRedditYoutube

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.