使用 Helm 构建和部署 Data Grid 集群


Red Hat Data Grid 8.3

在 OpenShift 上创建 Data Grid 集群

Red Hat Customer Content Services

摘要

使用 Helm 构建和部署 Data Grid 集群。

Red Hat Data Grid

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

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

Data Grid 文档

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

Data Grid 下载

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

注意

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

使开源包含更多

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

使用 Helm 构建、配置和部署 Data Grid 集群。Data Grid 提供了一个 Helm chart,它打包了在 OpenShift 上运行 Data Grid 集群的资源。

安装 Data Grid chart 以创建一个 Helm 发行版本,它会在 OpenShift 项目中实例化 Data Grid 集群。

1.1. 通过 OpenShift 控制台安装 Data Grid chart

使用 OpenShift Web 控制台从红帽开发人员目录安装 Data Grid 图。安装 chart 会创建一个 Helm 发行版本,它将部署 Data Grid 集群。

先决条件

  • 有权访问 OpenShift。

流程

  1. 登录 OpenShift Web 控制台。
  2. 选择 Developer 视角。
  3. 打开 Add 视图,然后选择 Helm Chart 以浏览 Red Hat Developer 目录。
  4. 找到并选择 Data Grid 图。
  5. 为 chart 指定名称并选择版本。
  6. 在 Data Grid 图表的以下部分定义值:

    • 镜像将 容器镜像配置为在为您的 Data Grid 集群创建 pod 时使用。
    • 部署配置 您的 Data Grid 集群。

      提示

      要查找每个值的描述,请选择 YAML view 选项并访问 schema。编辑 yaml 配置以自定义您的 Data Grid chart。

  7. 选择 Install

验证

  1. Developer 视角中选择 Helm 视图。
  2. 选择您创建的 Helm 发行版本来查看详情、资源和其他信息。

1.2. 在命令行中安装 Data Grid 图

使用命令行在 OpenShift 上安装 Data Grid 图并实例化 Data Grid 集群。安装 chart 会创建一个 Helm 发行版本,它将部署 Data Grid 集群。

先决条件

流程

  1. 创建一个值文件来配置您的 Data Grid 集群。

    例如,以下值文件会创建一个具有两个节点的集群:

    $ cat > infinispan-values.yaml<<EOF
    #Build configuration
    images:
      server: registry.redhat.io/datagrid/datagrid-8-rhel8:latest
      initContainer: registry.access.redhat.com/ubi8-micro
    #Deployment configuration
    deploy:
      #Add a user with full security authorization.
      security:
        batch: "user create admin -p changeme"
      #Create a cluster with two pods.
      replicas: 2
    EOF
    Copy to Clipboard Toggle word wrap
  2. 安装 Data Grid chart 并指定您的值文件。

    $ helm install infinispan openshift-helm-charts/redhat-data-grid --values infinispan-values.yaml
    Copy to Clipboard Toggle word wrap
提示

使用 --set 标志覆盖部署配置值。例如,要创建带有三个节点的集群:

--set deploy.replicas=3
Copy to Clipboard Toggle word wrap

验证

观察 pod,以确保 Data Grid 集群中的所有节点都已成功创建。

$ oc get pods -w
Copy to Clipboard Toggle word wrap

1.3. 升级 Data Grid Helm 发行版本

通过升级 Helm 发行版本在运行时修改您的 Data Grid 集群配置。

先决条件

  • 部署 Data Grid 图。
  • 具有 helm 客户端。
  • 有一个 oc 客户端。

流程

  1. 根据情况修改 Data Grid 部署的值文件。
  2. 使用 helm 客户端应用您的更改,例如:

    $ helm upgrade infinispan openshift-helm-charts/redhat-data-grid --values infinispan-values.yaml
    Copy to Clipboard Toggle word wrap

验证

观察重建 pod,以确保所有更改都成功应用到您的 Data Grid 集群。

$ oc get pods -w
Copy to Clipboard Toggle word wrap

1.4. 卸载 Data Grid Helm 发行版本

卸载 Data Grid chart 的发行版本,以删除 pod 和其他部署工件。

注意

此流程演示了如何在命令行中卸载 Data Grid 部署,但您可以使用 OpenShift Web 控制台。具体步骤请参阅 OpenShift 文档。

先决条件

  • 部署 Data Grid 图。
  • 具有 helm 客户端。
  • 有一个 oc 客户端。

流程

  1. 列出已安装的 Data Grid Helm 发行版本。

    $ helm list
    Copy to Clipboard Toggle word wrap
  2. 使用 helm 客户端卸载发行版本并删除 Data Grid 集群:

    $ helm uninstall <helm_release_name>
    Copy to Clipboard Toggle word wrap
  3. 使用 oc 客户端删除生成的 secret。

    $ oc delete secret <helm_release_name>-generated-secret
    Copy to Clipboard Toggle word wrap

1.5. 部署配置值

通过部署配置值,您可以自定义 Data Grid 集群。

提示

您还可以在 Data Grid chart README 中找到字段和值描述。

Expand
字段描述默认值

deploy.replicas

指定 Data Grid 集群中的节点数量,以及为每个节点创建的 pod。

1

deploy.container.extraJvmOpts

将 JVM 选项传递给 Data Grid 服务器。

没有默认值。

deploy.container.storage.ephemeral

定义存储是临时还是永久的。

默认值为 false,这意味着数据是永久的。将值设为 true 以使用临时存储,这意味着集群关闭或重启时删除所有数据。

deploy.container.storage.size

定义为每个 Data Grid pod 分配多少存储。

1Gi

deploy.container.storage.storageClassName

指定用于持久性卷声明(PVC)的 StorageClass 对象的名称。

没有默认值。默认情况下,持久性卷声明使用将 storageclass.kubernetes.io/is-default-class 注解设置为 true 的存储类。如果包含此字段,则必须指定一个现有存储类作为值。

deploy.container.resources.limits.cpu

为每个 Data Grid pod 定义 CPU 限制(以 CPU 单位)。

500m

deploy.container.resources.limits.memory

定义每个 Data Grid pod 的最大内存量(以字节为单位)。

512Mi

deploy.container.resources.requests.cpu

指定每个 Data Grid pod 的最大 CPU 请求(以 CPU 单元为单位)。

500m

deploy.container.resources.requests.memory

指定每个 Data Grid pod 的最大内存请求(以字节为单位)。

512Mi

deploy.security.secretName

指定创建凭证并配置安全授权的 secret 名称。

没有默认值。如果您创建自定义安全 secret,则 deploy.security.batch 不起作用。

deploy.security.batch

为 Data Grid 命令行界面(CLI)提供批处理文件,以便在启动时创建凭证并配置安全授权。

没有默认值。

deploy.expose.type

指定在网络上公开 Hot Rod 和 REST 端点的服务,并提供对 Data Grid 集群的访问,包括 Data Grid 控制台。

路由 Valid 选项为: "" (空值)、RouteLoadBalancerNodePort。如果您不想在网络上公开 Data Grid,则设置一个空值("")。

deploy.expose.nodePort

指定默认 30000 到 32767 范围内的节点端口服务的网络端口。

0 如果没有指定端口,平台会选择一个可用的端口。

deploy.expose.host

(可选)指定公开路由的主机名。

没有默认值。

deploy.expose.annotations

为在网络上公开数据平面的服务添加注解。

没有默认值。

deploy.logging.categories

配置 Data Grid 集群日志类别和级别。

没有默认值。

deploy.podLabels

为您创建的每个 Data Grid pod 添加标签。

没有默认值。

deploy.svcLabels

为您创建的每个服务添加标签。

没有默认值。

deploy.resourceLabels

为包括 pod 和服务在内的所有 Data Grid 资源添加标签。

没有默认值。

deploy.makeDataDirWritable

允许写入每个 Data Grid Server 节点 的数据 目录的访问权限。

false 如果将值设为 true,Data Grid 会在 /opt/infinispan/server/data 目录上运行 chmod -R 来更改权限。

deploy.nameOverride

为所有 Data Grid 集群资源指定一个名称。

Helm Chart 发行版本名称。

deploy.infinispan

Data Grid 服务器配置。

Data Grid 提供默认的服务器配置。有关配置服务器实例的更多信息,请参阅 Data Grid 服务器配置值

第 2 章 配置 Data Grid 服务器

将自定义 Data Grid 服务器配置应用到您的部署中。

2.1. 自定义 Data Grid 服务器配置

将自定义 deploy.infinispan 值应用到 Data Grid 集群,该集群配置缓存管理器和底层服务器机制,如安全域或 Hot Rod 和 REST 端点。

重要

修改 deploy.infinispan 值时,您必须始终提供完整的 Data Grid 服务器配置。

注意

如果要为您的 Data Grid 集群使用监控功能,请不要修改或删除默认的 "metrics" 配置。

流程

根据需要修改 Data Grid 服务器配置:

  • 使用 deploy.infinispan.cacheContainer 字段为 Cache Manager 指定配置值。

    例如,您可以使用任何 Data Grid 配置在启动时创建缓存,或添加缓存模板,并使用它们根据需要创建缓存。

  • 使用 deploy.infinispan.cacheContainer.security.authorization 字段配置安全授权来控制用户角色和权限。
  • 选择其中一个默认 JGroups 堆栈,或使用 deploy.infinispan.cacheContainer.transport 字段配置集群传输。
  • 使用 deploy.infinispan.server.endpoints 字段配置 Data Grid Server 端点。
  • 使用 deploy.infinispan.server.interfacesdeploy.infinispan.server.socketBindings 字段配置 Data Grid Server 网络接口和端口。
  • 使用 deploy.infinispan.server.security 字段配置 Data Grid Server 安全机制。

    注意

    Data Grid 图目前不支持 TLS/SSL 安全域和加密的客户端连接。

2.2. Data Grid 服务器配置值

Data Grid Server 配置值可让您自定义 Cache Manager 并修改在 OpenShift pod 中运行的服务器实例。

Data Grid 服务器配置

deploy:
  infinispan:
    cacheContainer:
    # [USER] Add cache, template, and counter configuration.
    name: default
    # [USER] Specify `security: null` to disable security authorization.
    security:
      authorization: {}
    transport:
      cluster: ${infinispan.cluster.name:cluster}
      node-name: ${infinispan.node.name:}
      stack: kubernetes
    server:
      endpoints:
        # [USER] Hot Rod and REST endpoints.
        - securityRealm: default
          socketBinding: default
        # [METRICS] Metrics endpoint for cluster monitoring capabilities.
        - connectors:
            rest:
              restConnector:
                authentication:
                  mechanisms: BASIC
          securityRealm: metrics
          socketBinding: metrics
      interfaces:
      - inetAddress:
          value: ${infinispan.bind.address:127.0.0.1}
        name: public
      security:
        credentialStores:
        - clearTextCredential:
            clearText: secret
          name: credentials
          path: credentials.pfx
        securityRealms:
        # [USER] Security realm for the Hot Rod and REST endpoints.
        - name: default
          # [USER] Comment or remove this properties realm to disable authentication.
          propertiesRealm:
            groupProperties:
              path: groups.properties
            groupsAttribute: Roles
            userProperties:
              path: users.properties
          # [METRICS] Security realm for the metrics endpoint.
        - name: metrics
          propertiesRealm:
            groupProperties:
              path: metrics-groups.properties
              relativeTo: infinispan.server.config.path
            groupsAttribute: Roles
            userProperties:
              path: metrics-users.properties
              plainText: true
              relativeTo: infinispan.server.config.path
        socketBindings:
          defaultInterface: public
          portOffset: ${infinispan.socket.binding.port-offset:0}
          socketBinding:
            # [USER] Socket binding for the Hot Rod and REST endpoints.
          - name: default
            port: 11222
            # [METRICS] Socket binding for the metrics endpoint.
          - name: metrics
            port: 11223
Copy to Clipboard Toggle word wrap

Data Grid 缓存配置

deploy:
  infinispan:
    cacheContainer:
      distributedCache:
        name: "mycache"
        mode: "SYNC"
        owners: "2"
        segments: "256"
        capacityFactor: "1.0"
        statistics: "true"
        encoding:
          mediaType: "application/x-protostream"
        expiration:
          lifespan: "5000"
          maxIdle: "1000"
        memory:
          maxCount: "1000000"
          whenFull: "REMOVE"
        partitionHandling:
          whenSplit: "ALLOW_READ_WRITES"
          mergePolicy: "PREFERRED_NON_NULL"
    #Provide additional Cache Manager configuration.
  server:
    #Provide configuration for server instances.
Copy to Clipboard Toggle word wrap

缓存模板

deploy:
  infinispan:
    cacheContainer:
      distributedCacheConfiguration:
        name: "my-dist-template"
        mode: "SYNC"
        statistics: "true"
        encoding:
          mediaType: "application/x-protostream"
        expiration:
          lifespan: "5000"
          maxIdle: "1000"
        memory:
          maxCount: "1000000"
          whenFull: "REMOVE"
    #Provide additional Cache Manager configuration.
  server:
    #Provide configuration for server instances.
Copy to Clipboard Toggle word wrap

集群传输

deploy:
  infinispan:
    cacheContainer:
      transport:
        #Specifies the name of a default JGroups stack.
        stack: kubernetes
    #Provide additional Cache Manager configuration.
  server:
    #Provide configuration for server instances.
Copy to Clipboard Toggle word wrap

第 3 章 配置身份验证和授权

通过添加凭证并分配具有不同权限的角色来控制对 Data Grid 集群的访问。

3.1. 默认凭证

Data Grid 在 < helm_release_name>-generated-secret secret 中添加默认凭证。

Expand
用户名描述

developer

具有对 Data Grid 资源具有完全访问权限的 admin 角色的用户。

monitor

具有可通过端口 11223 访问 Data Grid 指标的 monitor 角色的内部用户。

3.1.1. 检索凭证

从身份验证 secret 获取 Data Grid 凭证。

先决条件

  • 安装 Data Grid Helm Chart。
  • 有一个 oc 客户端。

流程

  • 使用以下命令,从 & lt;helm_release_name>-generated- secret 或自定义凭证中检索默认凭证:

    $ oc get secret <helm_release_name>-generated-secret \
    -o jsonpath="{.data.identities-batch}" | base64 --decode
    Copy to Clipboard Toggle word wrap

3.2. 添加自定义用户凭证

创建 Data Grid 用户凭证并分配授予集群访问权限安全授权的角色。

流程

  1. 通过在 deploy.security.batch 字段中指定 user create 命令创建凭证。

    具有隐式授权的用户

    deploy:
      security:
        batch: 'user create admin -p changeme'
    Copy to Clipboard Toggle word wrap

    具有特定角色的用户

    deploy:
      security:
        batch: 'user create personone -p changeme -g deployer'
    Copy to Clipboard Toggle word wrap

  2. 安装或升级您的 Data Grid Helm 发行版本。

3.2.1. 用户角色和权限

Data Grid 使用基于角色的访问控制来授权用户访问集群资源和数据。为提高安全性,您应该在添加凭证时为 Data Grid 用户授予适当的角色。

Expand
角色权限描述

admin

ALL

带有所有权限的超级用户,包括缓存管理器生命周期的控制。

deployer

ALL_READ, ALL_WRITE, LISTEN, EXEC, MONITOR, CREATE

除了 应用程序 权限外,还可创建和删除 Data Grid 资源。

application

ALL_READ, ALL_WRITE, LISTEN, EXEC, MONITOR

除了 观察 权限外,还对 Data Grid 资源具有读写访问权限。也可以侦听事件并执行服务器任务和脚本。

Observer

ALL_READ, MONITOR

除了 监控 权限外,还具有对 Data Grid 资源的读取访问权限。

monitor

MONITOR

可以查看 Data Grid 集群的统计信息。

3.2.2. 使用身份验证 secret 添加多个凭证

使用身份验证 secret 为 Data Grid 集群添加多个凭证。

先决条件

  • 有一个 oc 客户端。

流程

  1. 创建一个 identity-batch 文件,其中包含用于添加凭证的命令。

    apiVersion: v1
    kind: Secret
    metadata:
      name: connect-secret
    type: Opaque
    stringData:
      # The "monitor" user authenticates with the Prometheus ServiceMonitor.
      username: monitor
      # The password for the "monitor" user.
      password: password
      # The key must be 'identities-batch'.
      # The content is "user create" commands for the Data Grid CLI.
      identities-batch: |-
        user create user1 -p changeme -g admin
        user create user2 -p changeme -g deployer
        user create monitor -p password --users-file metrics-users.properties --groups-file metrics-groups.properties
    Copy to Clipboard Toggle word wrap
  2. 从 identity -batch 文件创建 身份验证 secret。

    $ oc apply -f identities-batch.yaml
    Copy to Clipboard Toggle word wrap
  3. deploy.security.SecretName 字段中指定身份验证 secret。

    deploy:
      security:
        authentication: true
        secretName: 'connect-secret'
    Copy to Clipboard Toggle word wrap
  4. 安装或升级您的 Data Grid Helm 发行版本。

3.3. 禁用身份验证

允许用户访问 Data Grid 集群和操作数据,而无需提供凭证。

重要

如果无法从 OpenShift 集群外部访问端点,则不要禁用身份验证。您应该只为开发环境禁用身份验证。

流程

  1. 从"default"安全域中删除 propertiesRealm 字段。
  2. 安装或升级您的 Data Grid Helm 发行版本。

3.4. 禁用安全授权

允许 Data Grid 用户执行任何操作,而不考虑它们的角色。

流程

  1. null 设置为 deploy.infinispan.cacheContainer.security 字段的值。

    提示

    --set deploy.infinispan.cacheContainer.security=null 参数与 helm 客户端一起使用。

  2. 安装或升级您的 Data Grid Helm 发行版本。

第 4 章 配置网络访问

为您的 Data Grid 部署配置网络访问,并了解内部网络服务。

4.1. 在网络上公开 Data Grid 集群

在网络上提供 Data Grid 集群,以便您可以访问 Data Grid 控制台以及 REST 和 Hot Rod 端点。默认情况下,Data Grid chart 通过路由公开部署,但您可以将它配置为通过 Load Balancer 或 Node Port 来公开集群。您还可以配置 Data Grid chart,以便不会在网络上公开部署,且仅在 OpenShift 集群内部可用。

流程

  1. deploy.expose.type 字段指定以下内容之一:

    Expand
    选项描述

    Route

    通过路由公开数据仓库。这是默认值。

    LoadBalancer

    通过负载均衡器服务公开数据仓库。

    NodePort

    通过节点端口服务公开数据仓库。

    "" (空值)

    禁用在网络上公开数据平面。

  2. 如果您通过路由公开 Data Grid,可选使用 deploy.expose.host 字段指定主机名。
  3. 如果您通过节点端口服务公开 Data Grid,可选使用 deploy.expose.nodePort 字段指定端口。
  4. 安装或升级您的 Data Grid Helm 发行版本。

4.2. 检索网络服务详情

获取网络服务详情,以便您可以连接到 Data Grid 集群。

先决条件

  • 在网络上公开您的 Data Grid 集群。
  • 有一个 oc 客户端。

流程

使用以下命令之一检索网络服务详情:

  • 如果您通过路由公开 Data Grid:

    $ oc get routes
    Copy to Clipboard Toggle word wrap
  • 如果您通过负载均衡器或节点端口服务公开 Data Grid:

    $ oc get services
    Copy to Clipboard Toggle word wrap

4.3. 网络服务

Data Grid 图为内部访问创建默认网络服务。

Expand
服务端口协议描述

<helm_release_name>

11222

TCP

提供对 Data Grid Hot Rod 和 REST 端点的访问。

<helm_release_name>

11223

TCP

提供对 Data Grid 指标的访问。

<helm_release_name>-ping

8888

TCP

允许 Data Grid pod 相互发现并组成集群。

您可以检索内部网络的详情,如下所示:

$ oc get services

NAME              TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)
infinispan        ClusterIP   192.0.2.0        <none>        11222/TCP,11223/TCP
infinispan-ping   ClusterIP   None             <none>        8888/TCP
Copy to Clipboard Toggle word wrap

第 5 章 连接到 Data Grid 集群

配置和部署 Data Grid 集群后,您可以通过 Data Grid Console、命令行界面(CLI)、Hot Rod 客户端或 REST API 建立远程连接。

5.1. 访问数据网格控制台

访问控制台以创建缓存、执行管理操作和监控您的 Data Grid 集群。

先决条件

  • 在网络上公开您的 Data Grid 集群。
  • 检索网络服务详细信息。

流程

  • $SERVICE_HOSTNAME:$PORT 的任何浏览器访问 Data Grid Console。

    $SERVICE_HOSTNAME:$PORT 替换为网络上可用的 Data Grid 的主机名和端口。

5.2. 使用命令行界面(CLI)

使用 Data Grid CLI 连接到集群并创建缓存、操作数据并执行管理操作。

先决条件

  • 在网络上公开您的 Data Grid 集群。
  • 检索网络服务详细信息。
  • 从 Data Grid 软件下载
  • 将原生 Data Grid CLI 发行版本的 .zip 存档提取到主机文件系统。

流程

  1. 使用网络服务启动 Data Grid CLI 作为 -c 参数的值,例如:

    $ {native_cli} -c http://cluster-name-myroute.hostname.net/
    Copy to Clipboard Toggle word wrap
  2. 提示时输入您的 Data Grid 凭证。
  3. 根据需要执行 CLI 操作。

    提示

    按 tab 键或使用 --help 参数查看可用选项和帮助文本。

  4. 使用 exit 命令来 退出 CLI。

5.3. 连接在 OpenShift 上运行的 Hot Rod 客户端

使用与 Data Grid 集群在同一 OpenShift 集群中运行的 Hot Rod 客户端访问远程缓存。

先决条件

  • 检索网络服务详细信息。

流程

  1. 在客户端配置中指定您的 Data Grid 集群的内部网络服务详情。

    在以下配置示例中,$SERVICE_HOSTNAME:$PORT 表示允许访问您的 Data Grid 集群的主机名和端口。

  2. 指定您的凭证,以便客户端可以使用 Data Grid 进行身份验证。
  3. 如果需要,配置客户端智能。

    在 OpenShift 上运行的热 Rod 客户端可以使用任何客户端智能,因为它们可以访问 Data Grid pod 的内部 IP 地址。
    建议使用默认的智能功能 HASH_DISTRIBUTION_AWARE,因为它允许客户端将请求路由到主所有者,从而提高性能。

编程配置
import org.infinispan.client.hotrod.configuration.ConfigurationBuilder;
import org.infinispan.client.hotrod.configuration.SaslQop;
import org.infinispan.client.hotrod.impl.ConfigurationProperties;
...

ConfigurationBuilder builder = new ConfigurationBuilder();
      builder.addServer()
               .host("$SERVICE_HOSTNAME")
               .port(ConfigurationProperties.DEFAULT_HOTROD_PORT)
             .security().authentication()
               .username("username")
               .password("changeme")
               .realm("default")
               .saslQop(SaslQop.AUTH)
               .saslMechanism("SCRAM-SHA-512");
Copy to Clipboard Toggle word wrap
hot Rod 客户端属性
# Connection
infinispan.client.hotrod.server_list=$SERVICE_HOSTNAME:$PORT

# Authentication
infinispan.client.hotrod.use_auth=true
infinispan.client.hotrod.auth_username=developer
infinispan.client.hotrod.auth_password=$PASSWORD
infinispan.client.hotrod.auth_server_name=$CLUSTER_NAME
infinispan.client.hotrod.sasl_properties.javax.security.sasl.qop=auth
infinispan.client.hotrod.sasl_mechanism=SCRAM-SHA-512
Copy to Clipboard Toggle word wrap

5.4. 连接在 OpenShift 外部运行的 Hot Rod 客户端

使用在部署 Data Grid 集群的 OpenShift 集群外部运行的 Hot Rod 客户端访问远程缓存。

先决条件

  • 在网络上公开您的 Data Grid 集群。
  • 检索网络服务详细信息。

流程

  1. 在客户端配置中指定您的 Data Grid 集群的内部网络服务详情。

    在以下配置示例中,$SERVICE_HOSTNAME:$PORT 表示允许访问您的 Data Grid 集群的主机名和端口。

  2. 指定您的凭证,以便客户端可以使用 Data Grid 进行身份验证。
  3. 将客户端配置为使用 BASIC 智能。
编程配置
import org.infinispan.client.hotrod.configuration.ClientIntelligence;
import org.infinispan.client.hotrod.configuration.ConfigurationBuilder;
import org.infinispan.client.hotrod.configuration.SaslQop;
...

ConfigurationBuilder builder = new ConfigurationBuilder();
      builder.addServer()
               .host("$SERVICE_HOSTNAME")
               .port("$PORT")
             .security().authentication()
               .username("username")
               .password("changeme")
               .realm("default")
               .saslQop(SaslQop.AUTH)
               .saslMechanism("SCRAM-SHA-512");
      builder.clientIntelligence(ClientIntelligence.BASIC);
Copy to Clipboard Toggle word wrap
hot Rod 客户端属性
# Connection
infinispan.client.hotrod.server_list=$SERVICE_HOSTNAME:$PORT

# Client intelligence
infinispan.client.hotrod.client_intelligence=BASIC

# Authentication
infinispan.client.hotrod.use_auth=true
infinispan.client.hotrod.auth_username=developer
infinispan.client.hotrod.auth_password=$PASSWORD
infinispan.client.hotrod.auth_server_name=$CLUSTER_NAME
infinispan.client.hotrod.sasl_properties.javax.security.sasl.qop=auth
infinispan.client.hotrod.sasl_mechanism=SCRAM-SHA-512
Copy to Clipboard Toggle word wrap

5.5. 访问 REST API

Data Grid 提供了一个 RESTful 接口,您可以使用 HTTP 客户端与之交互。

先决条件

  • 在网络上公开您的 Data Grid 集群。
  • 检索网络服务详细信息。

流程

  • 使用 $SERVICE_HOSTNAME:$PORT/rest/v2 的任何 HTTP 客户端访问 REST API。

    $SERVICE_HOSTNAME:$PORT 替换为网络上可用的 Data Grid 的主机名和端口。

法律通告

Copyright © 2023 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 logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat