第 4 章 为 OpenShift 服务设置数据网格
4.1. 用于 OpenShift 服务的数据网格 复制链接链接已复制到粘贴板!
数据网格服务是有状态的应用程序,您可以轻松地扩展或缩减而不丢失数据。
cache-service适用于 OpenShift 集群的易于使用的数据网格,旨在通过高性能缓存加快应用程序响应时间。
- 内存中的数据在节点间平均分布。在创建服务时,您可以定义 Data Grid 集群的初始大小。发行版也是同步的。当向另一节点传播数据时,发送节点会等待操作在线程继续之前完成。
- 默认情况下,缓存条目的单一副本。如果 Pod 重启,则 pod 中的数据将会丢失。为了实现更加弹性的数据,您可以在创建服务时轻松启用复制。
-
缓存条目存储了 JVM 效率的不足堆。当缓存大小达到 pod 可用的内存量时,条目会被驱除。您可以选择更改驱除策略来引发
ContainerFullException。
datagrid-service- 针对 OpenShift 的完整数据网格分布,可让您创建多个不同的缓存配置。为您提供索引和查询以及 Prometheus 监控等高级功能。
4.1.1. Container Storage 复制链接链接已复制到粘贴板!
cache-service 和 datagrid-service 容器在 /opt/datagrid/standalone/data 上挂载了存储卷。
卷大小为 1GB。您可以使用 datagrid-service 来调整大小,但不使用 cache-service。
- ephemeral 或 Permanent
- 当您远程创建缓存时,您可以控制它们是否为临时还是永久的。永久缓存会在容器重启后保留,因为缓存定义保存在存储卷中。默认缓存始终是永久的。
- persistent
-
datagrid-service可让您持久的缓存条目和索引到存储卷。如果您需要更多的数据保证,您可以选择性地通过缓存存储保留基于外部文件的存储或数据库。
4.1.2. 分区处理 复制链接链接已复制到粘贴板!
默认情况下,OpenShift 服务的 Data Grid 使用分区处理配置来确保数据一致性。
-
DENY_READ_WRITES冲突解决策略,该策略拒绝缓存条目的读写操作,除非网段的所有所有者都位于同一分区。 -
REMOVE_ALLmerge 策略,在检测到冲突时从缓存中删除条目。
只有在数据在集群间复制时,才会应用网络分区。
4.1.3. 确认服务可用性 复制链接链接已复制到粘贴板!
用于 cache-service 和 datagrid-service 的模板可在 openshift 命名空间中的 Red Hat OpenShift Online 和 Red Hat OpenShift Container Platform 中找到。
运行以下命令,以验证服务模板是否可用:
oc get templates -n openshift | grep 'cache-service\|datagrid-service'
$ oc get templates -n openshift | grep 'cache-service\|datagrid-service'
4.1.3.1. 导入模板 复制链接链接已复制到粘贴板!
如有必要,导入 cache-service 和 datagrid-service,如下所示:
- 登录您的 OpenShift 集群。
导入服务模板:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 提示使用
oc replace --force覆盖现有模板。