Data Grid Code Tutorials
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 服务器时演示如何动态配置缓存。 | |
演示如何配置近缓存以提高远程缓存中的读取性能。 | |
演示如何使用管理 API 动态创建缓存和缓存模板。 | |
演示缓存如何工作的编码。 | |
使用 Client Listeners 在远程缓存中检测数据何时变化。 | |
演示如何查询远程缓存值。 | |
演示如何使用连续查询和远程缓存。 | |
演示远程事务的工作方式。 | |
演示如何配置启用授权的缓存。 | |
演示如何使用 TLS 授权连接到 Data Grid 服务器。 | |
演示远程计数器的工作方式。 | |
演示远程多图的工作方式。 | |
演示如何注册服务器任务以及如何从 Hot Rod 客户端执行它们。 | |
演示如何使用 Data Grid 和 JUnit 5 扩展。 | |
演示如何使用数据网格和持久缓存。 | |
演示如何使用 Data Grid 和 Redis 客户端来读取和写入使用 Resp 协议。 | |
演示了如何将 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 的工作原理。 | |
演示事务的工作方式。 | |
演示分布式流的工作方式。 | |
演示 JCache 的工作原理。 | |
演示 Functional Map API 的工作原理。 | |
演示 Map API 如何与 Data Grid 缓存一起工作。 | |
演示如何使用 Multimap。 | |
使用 Data Grid Query 对缓存值执行全文本查询。 | |
使用 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 Caches 与 Spring Boot 和 Data Grid Server 搭配使用。 | |
演示如何将 Spring Caches 与 Spring Boot Reactor 和 Data Grid Server 搭配使用。 | |
演示如何在 Spring Boot 和 Data Grid Server 中使用 Spring Session。 | |
演示如何在 Spring Boot 和 Data Grid Embedded 中使用 Spring Cache。 | |
演示如何将 Spring Session 与 Spring Boot 和 Data Grid Embedded 一起使用。 | |
演示如何在没有 Spring Boot 的情况下使用 Spring Cache 和 Data Grid Embedded。 |
Data Grid 文档
您可以在以下文档中找到更多资源: