搜索

Data Grid REST API

download PDF
Red Hat Data Grid 8.1

配置并与 Data Grid REST API 交互

Red Hat Customer Content Services

摘要

访问数据、监控和维护集群,通过 Data Grid REST API 执行管理操作。

Red Hat Data Grid

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

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

Data Grid 文档

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

Data Grid 下载

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

注意

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

使开源包含更多

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

第 1 章 Data Grid REST 端点

网格服务器通过在 Netty 上构建的 REST 端点提供对数据的 RESTful HTTP 访问。

1.1. REST 身份验证

使用 Data Grid 命令行界面(CLI)和 user 命令配置 REST 端点的身份验证。CLI 允许您创建和管理用于访问 REST 端点的用户、密码和授权角色。

1.2. 支持的协议

Data Grid REST 端点支持 HTTP/1.1HTTP/2 协议。

您可以执行以下操作之一使用 HTTP/2

注意

TLS/ALPN 与 JDK8 需要额外的客户端配置。有关 REST 客户端,请参阅相应的文档。在大多数情况下,您需要使用 Jetty ALPN Agent 或 OpenSSL 绑定。

1.3. 数据格式和 REST API

Data Grid 缓存以可通过 MediaType 定义的格式存储数据。

有关使用 Data Grid 的 MediaTypes 和编码数据的更多信息,请参阅 Encoding 部分。

以下示例为条目配置存储格式:

<cache>
   <encoding>
      <key media-type="application/x-java-object"/>
      <value media-type="application/xml; charset=UTF-8"/>
   </encoding>
</cache>

如果没有配置 MediaType,Data Grid 默认为 application/octet-stream 用于键和值。但是,如果缓存被索引,则数据网格默认为 application/x-protostream

1.3.1. 支持的格式

您可以以不同格式写入和读取数据,Data Grid 可以根据需要在这些格式之间进行转换。

以下"标准"格式是可交换的:

  • application/x-java-object
  • application/octet-stream
  • application/x-www-form-urlencoded
  • text/plain

您还可以将前面的数据格式转换为以下格式:

  • application/xml
  • application/json
  • application/x-jboss-marshalling
  • application/x-protostream
  • application/x-java-serialized

通过数据网格,您可以在 application/x-protostreamapplication/json 之间转换。

对 REST API 的所有调用都可以提供标头,描述在读取时写入的内容或所需格式。Data Grid 支持为值应用的标准 HTTP/1.1 标头 "Content-Type" 和 "Accept",以及 "Key-Content-Type",对键类似。

1.3.2. 接受标头

Data Grid REST 端点与 RFC-2616 Accept 标头兼容,并根据支持的转换协商正确的 MediaType。

例如,在读取数据时发送以下标头:

Accept: text/plain;q=0.7, application/json;q=0.8, */*;q=0.6

前面的标头会导致 Data Grid 首先返回 JSON 格式的内容(高优先级 0.8)。如果无法将存储格式转换为 JSON,Data Grid 将尝试下一个 text/plain 格式(具有最高优先级 0.7)。最后,Data Grid 会返回 * attention,它根据缓存配置选择合适的格式。

1.3.3. 带有特殊 Characters 的名称

创建任何 REST 资源需要一个属于 URL 的名称,如果此名称包含 RFC 3986 spec 第 2.2 节 中定义的任何特殊字符,则需要使用 Percent 编码机制对其进行编码

1.3.4. key-Content-Type Headers

大多数 REST API 调用在 URL 中包含密钥。Data Grid 假设 Key 在处理这些调用时是 java.lang.String,但您可以对采用不同格式的密钥使用特定的标头 Key-Content-Type

key-Content-Type 标头示例

  • 将 byte[] Key 指定为 Base64 字符串:

API 调用:

`PUT /my-cache/AQIDBDM=`

headers:

key-Content-Type: application/octet-stream

  • 以十六进制字符串形式指定 byte[] 密钥:

API 调用:

GET /my-cache/0x01CA03042F

headers:

Key-Content-Type: application/octet-stream; encoding=hex
  • 指定双键:

API 调用:

POST /my-cache/3.141456

headers:

Key-Content-Type: application/x-java-object;type=java.lang.Double

application/x-java-objecttype 参数仅限于:

  • 原语打包程序类型
  • java.lang.String
  • bytes, make application/x-java-object;type=Bytes 等同于 application/octet-stream;encoding=hex

1.3.5. JSON/Protostream Conversion

当缓存被索引或专门配置为存储 application/x-protostream 时,您可以发送和接收自动转换为 Protostream 的 JSON 文档。

您必须注册 protobuf 模式才能使转换正常工作。

要通过 REST 注册 protobuf 模式,请在 ___protobuf_metadata 缓存中调用 POST 或 PUT,如下例所示:

curl -u user:password -X POST --data-binary @./schema.proto http://127.0.0.1:11222/rest/v2/caches/___protobuf_metadata/schema.proto

编写 JSON 文档时,文档中必须存在一个特殊字段 _type,以对与文档对应的 protobuf 消息 进行身份。

例如,请考虑以下模式:

message Person  {
  required string name = 1;
  required int32 age = 2;
}

对应的 JSON 文档如下:

{
   "_type": "Person",
   "name": "user1",
   "age": 32
}

1.4. 交叉资源共享(CORS)请求

Data Grid REST 连接器支持 CORS,包括基于请求来源的 preflight 和规则。

下面显示了一个带有 CORS 规则的 REST 连接器配置示例:

<rest-connector name="rest1" socket-binding="rest" cache-container="default">
   <cors-rules>
      <cors-rule name="restrict host1"
                 allow-credentials="false">
         <allowed-origins>http://host1,https://host1</allowed-origins>
         <allowed-methods>GET</allowed-methods>
      </cors-rule>
      <cors-rule name="allow ALL"
                 allow-credentials="true"
                 max-age-seconds="2000">
         <allowed-origins>*</allowed-origins>
         <allowed-methods>GET,OPTIONS,POST,PUT,DELETE</allowed-methods>
         <allowed-headers>Key-Content-Type</allowed-headers>
      </cors-rule>
   </cors-rules>
</rest-connector>

Data Grid 根据浏览器设置的"Origin"标头按顺序评估 CORS 规则。

在上例中,如果 origin 是 "http://host1" 或 "https://host1",则应用规则 "restrict host1"。如果原始规则不同,则测试下一个规则。

因为 "allow ALL" 规则允许所有源,所以具有 "http://host1" 或 "https://host1" 以外的任何源都可以执行允许的方法,并使用提供的标头。

有关配置 CORS 规则的详情,请参考 Data Grid Server Configuration Schema

1.4.1. 允许对某些来源的所有 CORS 权限

在启动服务器时,可以使用 VM 属性 infinispan.server.rest.cors-allow,以允许所有权限对一个或多个源进行。Example:

./bin/server.sh -Dinfinispan.server.rest.cors-allow=http://192.168.1.78:11222,http://host.mydomain.com

使用此方法指定的所有源都优先于配置的规则。

第 2 章 与 Data Grid REST API 交互

借助 Data Grid REST API,您可以监控、维护和管理 Data Grid 部署,并提供对数据的访问。

2.1. 创建和管理缓存

创建和管理数据网格缓存,并对数据执行操作。

2.1.1. 创建缓存

使用 payload 中包含 XML 或 JSON 配置的 POST 请求,在 Data Grid 集群中创建命名的缓存。

POST /rest/v2/caches/{cacheName}
表 2.1. Headers
标头必需/可选参数

Content-Type

必需

为 Data Grid 配置有效负载设置 MediaTypeapplication/xmlapplication/json

标记

可选

用于设置 AdminFlags

2.1.1.1. XML 配置

XML 格式的数据网格配置必须符合架构并包括:

  • <Infinispan& gt; root 元素。
  • <cache-container&gt; 定义。

XML 配置示例

<infinispan>
    <cache-container>
        <distributed-cache name="myCache" mode="SYNC">
          <encoding media-type="application/x-protostream"/>
          <memory max-count="1000000" when-full="REMOVE"/>
        </distributed-cache>
    </cache-container>
</infinispan>

2.1.1.2. JSON 配置

以 JSON 格式的数据网格配置:

  • 仅要求缓存定义。
  • 必须遵循 XML 配置的结构。

    • XML 元素成为 JSON 对象。
    • XML 属性成为 JSON 字段。

JSON 配置示例

{
  "distributed-cache": {
    "name": "myCache",
    "mode": "SYNC",
    "encoding": {
      "media-type": "application/x-protostream"
      },
    "memory": {
      "max-count": 1000000,
      "when-full": "REMOVE"
    }
  }
}

2.1.2. 验证缓存

检查带有 HEAD 请求的 Data Grid 集群中是否有缓存。

HEAD /rest/v2/caches/{cacheName}

2.1.3. 使用模板创建缓存

通过 POST 请求和 ?template= 参数,从 Data Grid 模板创建缓存。

POST /rest/v2/caches/{cacheName}?template={templateName}
提示

2.1.4. 检索缓存配置

使用 GET 请求检索数据网格缓存配置。

GET /rest/v2/caches/{name}?action=config
表 2.2. Headers
标头必需/可选参数

accept

可选

设置所需格式以返回内容。支持的格式为 application/xmlapplication/json。默认为 application/json。如需更多信息,请参阅 Accept

2.1.5. 将缓存配置转换为 JSON

使用有效的 XML 配置和 ?action=toJSON 参数调用 POST 请求。Data Grid 使用配置等效的 JSON 表示来响应。

POST /rest/v2/caches?action=toJSON

2.1.6. 检索所有缓存详情

调用 GET 请求,以重新检查数据网格缓存的所有详细信息。

GET /rest/v2/caches/{name}

Data Grid 提供 JSON 响应,如下所示:

{
  "stats": {
    "time_since_start": -1,
    "time_since_reset": -1,
    "hits": -1,
    "current_number_of_entries": -1,
    "current_number_of_entries_in_memory": -1,
    "total_number_of_entries": -1,
    "stores": -1,
    "off_heap_memory_used": -1,
    "data_memory_used": -1,
    "retrievals": -1,
    "misses": -1,
    "remove_hits": -1,
    "remove_misses": -1,
    "evictions": -1,
    "average_read_time": -1,
    "average_read_time_nanos": -1,
    "average_write_time": -1,
    "average_write_time_nanos": -1,
    "average_remove_time": -1,
    "average_remove_time_nanos": -1,
    "required_minimum_number_of_nodes": -1
  },
  "size": 0,
  "configuration": {
    "distributed-cache": {
      "mode": "SYNC",
      "transaction": {
        "stop-timeout": 0,
        "mode": "NONE"
      }
    }
  },
  "rehash_in_progress": false,
  "bounded": false,
  "indexed": false,
  "persistent": false,
  "transactional": false,
  "secured": false,
  "has_remote_backup": false,
  "indexing_in_progress": false,
  "statistics": false
}
  • 统计 缓存的当前统计信息。
  • 缓存估计大小。
  • 配置 缓存配置。
  • 当重新哈希正在进行时,rehash_in_progress true。
  • indexing_in_progress true (索引正在进行时)。
  • 启用过期时 绑定
  • 如果缓存被索引,则 索引为 true。
  • 如果缓存持久,则为 persistent true。
  • 如果缓存 事务,则事务处理为 true。
  • 如果缓存被保护,则 安全 true。
  • 如果缓存有远程备份,则 has_remote_backup true。

2.1.7. 添加条目

使用 POST 请求向缓存添加条目。

POST /rest/v2/caches/{cacheName}/{cacheKey}

前面的请求使用 cacheKey 键将有效负载或请求正文放在 cacheName 缓存中。请求会替换已经存在的任何数据,并在应用 Time-To-LiveLast-Modified 值时更新它们。

如果指定键已存在值,则 POST 请求会返回 HTTP CONFLICT 状态,且不会修改值。要更新值,您应该使用 PUT 请求。请参阅 替换条目

表 2.3. Headers
标头必需/可选参数

Key-Content-Type

可选

为请求中的键设置内容类型。如需更多信息,请参阅 Key-Content-Type

Content-Type

可选

为键值设置 MediaType

timeToLiveSeconds

可选

设置条目自动删除前的秒数。如果没有设置此参数,Data Grid 将使用配置中的默认值。如果您设置了负值,则该条目永远不会被删除。

maxIdleTimeSeconds

可选

设置条目可以闲置的秒数。如果在最大闲置时间过后没有对条目发生读取或写入操作,该条目将会被自动删除。如果没有设置此参数,Data Grid 将使用配置中的默认值。如果您设置了负值,则该条目永远不会被删除。

标记

可选

用于添加条目的标记。如需更多信息,请参阅 标记

注意

标志 标头也适用于涉及缓存数据操作的所有其他操作,

注意

如果 timeToLiveSecondsmaxIdleTimeSeconds 的值为 0,则 Data Grid 将使用配置中的默认 lifespanmaxIdle 值。

如果 只有 maxIdleTimeSeconds 的值为 0, 则数据网格会使用:

  • 配置中的默认 maxIdle 值。
  • 如果没有传递值,则 timeToLiveSeconds 的值作为请求参数或值 -1

如果 只有 timeToLiveSeconds 的值为 0, 则数据网格会使用:

  • 配置中的 默认 lifespan 值。
  • 如果没有传递值,则作为请求参数或值 -1maxIdle 值。

2.1.8. 替换条目

将缓存中的条目替换为 PUT 请求。

PUT /rest/v2/caches/{cacheName}/{cacheKey}

如果指定键已存在值,PUT 请求会更新该值。如果您不想修改现有值,请使用返回 HTTP CONFLICT 状态的 POST 请求,而不是修改值。请参阅 添加值

2.1.9. 通过密钥检索数据

使用 GET 请求检索特定密钥的数据。

GET /rest/v2/caches/{cacheName}/{cacheKey}

服务器在给定密钥 cacheKey 下返回来自给定缓存 cacheName 的数据,在响应正文中返回数据。响应包含与 MediaType 协商对应的 Content-Type 标头。

注意

浏览器也可以直接访问缓存,如内容交付网络(CDN)。Data Grid 为每个条目返回一个唯一的 ETag,以及 Last-ModifiedExpires 标头字段。

这些字段提供有关您的请求中返回数据状态的信息。eTags 允许浏览器和其他客户端仅请求更改的数据,从而节省带宽。

表 2.4. Headers
标头必需/可选参数

Key-Content-Type

可选

为请求中的键设置内容类型。默认为 application/x-java-object; type=java.lang.String。如需更多信息,请参阅 Key-Content-Type

accept

可选

设置所需格式以返回内容。如需更多信息,请参阅 Accept

提示

在查询字符串中附加 extended 参数来获取更多信息:

GET /rest/v2/caches/{cacheName}/{cacheKey}?extended

前面的请求返回自定义标头:

  • cluster-Primary-Owner 返回密钥的主所有者的节点名称。
  • cluster-Node-Name 返回处理请求的服务器的 JGroups 节点名称。
  • cluster-Physical-Address 返回处理请求的服务器的物理 JGroups 地址。

2.1.10. 检查 Entries Exist

验证 HEAD 请求是否存在特定的条目。

HEAD /rest/v2/caches/{cacheName}/{cacheKey}

前面的请求只返回标头字段,以及您与该条目存储相同的内容。例如,如果您存储了 String,请求会返回一个 String。如果您存储了二进制、base64 编码的、blob 或序列化 Java 对象,则 Data Grid 不会序列化请求中的内容。

注意

HEAD 请求也支持 扩展 参数。

表 2.5. Headers
标头必需/可选参数

Key-Content-Type

可选

为请求中的键设置内容类型。默认为 application/x-java-object; type=java.lang.String。如需更多信息,请参阅 Key-Content-Type

2.1.11. 删除条目

使用 DELETE 请求从缓存中删除条目。

DELETE /rest/v2/caches/{cacheName}/{cacheKey}
表 2.6. Headers
标头必需/可选参数

Key-Content-Type

可选

为请求中的键设置内容类型。默认为 application/x-java-object; type=java.lang.String。如需更多信息,请参阅 Key-Content-Type

2.1.12. 删除缓存

使用 DELETE 请求从 Data Grid 集群中删除缓存。

DELETE /rest/v2/caches/{cacheName}

2.1.13. 从缓存检索所有密钥

调用 GET 请求,以检索 JSON 格式的缓存中的所有密钥。

GET /rest/v2/caches/{cacheName}?action=keys
表 2.7. 请求参数
参数必需/可选

batch-size

可选

在检索密钥时指定内部批处理大小。默认值为 1000

2.1.14. 清除缓存

要从缓存中删除所有数据,请使用 ?action=clear 参数调用 POST 请求。

POST /rest/v2/caches/{cacheName}?action=clear

2.1.15. 获取缓存大小

使用 GET 请求和 ?action=size 参数在整个集群中检索缓存的大小。

GET /rest/v2/caches/{cacheName}?action=size

2.1.16. 获取缓存统计

获取使用 GET 请求缓存的运行时统计信息。

GET /rest/v2/caches/{cacheName}?action=stats

2.1.17. 查询缓存

对带有 GET 请求和 ?action=search&query 参数的缓存执行 Ickle 查询。

GET /rest/v2/caches/{cacheName}?action=search&query={ickle query}

Data Grid 使用查询点击进行响应,如下所示:

{
  "total_results" : 150,
  "hits" : [ {
    "hit" : {
      "name" : "user1",
      "age" : 35
    }
  }, {
    "hit" : {
       "name" : "user2",
       "age" : 42
    }
  }, {
    "hit" : {
       "name" : "user3",
       "age" : 12
    }
  } ]
}
  • total_results 显示查询的结果总数。
  • hits 是来自查询的数组。
  • hit 是与查询匹配的对象。

    提示

    如果使用 Select 子句,则 hits 可以包含所有字段或字段子集。

表 2.8. 请求参数
参数必需/可选

query

必需

指定查询字符串。

max_results

可选

设置要返回的结果数。默认值为 10

offset

可选

指定要返回的第一个结果的索引。默认值为 0

query_mode

可选

指定 Data Grid 服务器如何执行查询。值是 FETCHBROADCAST。默认值为 FETCH

要使用请求的正文而不是指定查询参数,请按如下所示调用 POST 请求:

POST /rest/v2/caches/{cacheName}?action=search

以下示例显示了请求正文中的查询:

{
 "query":"from Entity where name:\"user1\"",
 "max_results":20,
 "offset":10
}

2.1.18. 重新索引数据

使用 POST 请求和 ?action=mass-index&mode={mode} 参数重新索引缓存中的所有数据。

POST  /v2/caches/{cacheName}/search/indexes?action=mass-index&mode={mode}

mode 参数的值如下:

  • 只有重新索引操作完成后,sync 才会返回 200 响应。
  • async 立即返回 200 的响应,重新索引操作继续在集群中运行。您可以使用 Index Statistics REST 调用来检查状态。

2.1.19. 清除索引

使用 POST 请求和 ?action=clear 参数从缓存中删除所有索引。

POST  /v2/caches/{cacheName}/search/indexes?action=clear

2.1.20. 检索索引统计

使用 GET 请求,获取缓存中的索引信息。

GET /v2/caches/{cacheName}/search/indexes/stats

Data Grid 提供 JSON 响应,如下所示:

{
    "indexed_class_names": ["org.infinispan.sample.User"],
    "indexed_entities_count": {
        "org.infinispan.sample.User": 4
    },
    "index_sizes": {
        "cacheName_protobuf": 14551
    },
    "reindexing": false
}
  • indexed_class_names 提供缓存中存在的索引的类名称。对于 Protobuf,该值始终为 org.infinispan.query.remote.impl.indexing.ProtobufValueWrapper
  • indexed_entities_count 提供每个类索引的实体数。
  • index_sizes 为缓存中的每个索引提供大小(以字节为单位)。
  • 重新索引 指示是否为缓存执行重新索引操作。如果值为 true,则缓存中 启动 MasssIndexer。

2.1.21. 检索查询统计

使用 GET 请求,获取有关在缓存中运行的查询的信息。

GET /v2/caches/{cacheName}/search/query/stats

Data Grid 提供 JSON 响应,如下所示:

{
    "search_query_execution_count":20,
    "search_query_total_time":5,
    "search_query_execution_max_time":154,
    "search_query_execution_avg_time":2,
    "object_loading_total_time":1,
    "object_loading_execution_max_time":1,
    "object_loading_execution_avg_time":1,
    "objects_loaded_count":20,
    "search_query_execution_max_time_query_string": "FROM entity"
}
  • search_query_execution_count 提供已运行的查询数量。
  • search_query_total_time 提供查询所花费的总时间。
  • search_query_execution_max_time 提供查询所花费的最长时间。
  • search_query_execution_avg_time 提供平均查询时间。
  • object_loading_total_time 提供查询执行后从缓存加载对象的总时间。
  • object_loading_execution_max_time 提供加载对象执行的最大时间。
  • object_loading_execution_avg_time 提供载入对象执行的平均时间。
  • objects_loaded_count 提供载入的对象计数。
  • search_query_execution_max_time_query_string 提供执行较慢的查询。

2.1.22. 清除 Query Statistics

通过 POST 请求和 ?action=clear 参数重置运行时统计信息。

POST /v2/caches/{cacheName}/search/query/stats?action=clear

2.1.23. 列出缓存

列出具有 GET 请求的 Data Grid 集群中的所有可用缓存。

GET /rest/v2/caches/

2.1.24. 带有缓存的跨站点操作

使用 Data Grid REST API 执行跨站点复制操作。

2.1.24.1. 获取所有备份位置的状态

使用 GET 请求检索所有备份位置的状态。

GET /v2/caches/{cacheName}/x-site/backups/

Data Grid 以 JSON 格式为每个备份位置的状态响应,如下例所示:

{
  "NYC": "online",
  "LON": "offline"
}
表 2.9. 返回的状态
描述

online

本地集群中的所有节点都有一个带有备份位置的跨站点视图。

离线

本地集群中没有带有备份位置的跨站点视图。

mixed

本地集群中的某些节点具有带有备份位置的跨站点视图,本地集群中的其他节点没有跨站点视图。响应表示每个节点的状态。

2.1.24.2. 获取特定备份位置的状态

使用 GET 请求检索备份位置的状态。

GET /v2/caches/{cacheName}/x-site/backups/{siteName}

Data Grid 以 JSON 格式通过站点中的每个节点状态进行响应,如下例所示:

{
  "NodeA":"offline",
  "NodeB":"online"
}
表 2.10. 返回的状态
描述

online

节点在线。

离线

节点离线。

失败

无法检索状态。远程缓存可以在请求期间关闭或发生网络错误。

2.1.24.3. 执行备份位置离线

通过 POST 请求和 ?action=take-offline 参数使备份位置离线。

POST /v2/caches/{cacheName}/x-site/backups/{siteName}?action=take-offline
2.1.24.4. 使备份位置在线

使用 ?action=bring-online 参数在线启动备份位置。

POST /v2/caches/{cacheName}/x-site/backups/{siteName}?action=bring-online
2.1.24.5. 将状态推送到备份位置

使用 ?action=start-push-state 参数将缓存状态推送到备份位置。

POST /v2/caches/{cacheName}/x-site/backups/{siteName}?action=start-push-state
2.1.24.6. 取消状态传输

使用 ?action=cancel-push-state 参数取消状态传输操作。

POST /v2/caches/{cacheName}/x-site/backups/{siteName}?action=cancel-push-state
2.1.24.7. 获取状态传输状态

使用 ?action=push-state-status 参数检索状态传输操作的状态。

GET /v2/caches/{cacheName}/x-site/backups?action=push-state-status

Data Grid 以 JSON 格式为每个备份位置的状态进行响应,如下例所示:

{
   "NYC":"CANCELED",
   "LON":"OK"
}
表 2.11. 返回的状态
描述

发送

状态传输到备份位置正在进行。

确定

状态传输成功完成。

ERROR

出现错误,状态为 transfer。检查日志文件。

取消

状态转移取消正在进行。

2.1.24.8. 清除状态传输状态

使用 ?action=clear-push-state-status 参数发送站点的清除状态传输状态。

POST /v2/caches/{cacheName}/x-site/local?action=clear-push-state-status
2.1.24.9. 修改获取离线条件

如果满足某些条件,站点将处于离线状态。修改离线参数,以控制备份位置自动离线的时间。

流程

  1. 检查配置了 GET 请求和 take-offline-config 参数的离线参数。

    GET /v2/caches/{cacheName}/x-site/backups/{siteName}/take-offline-config

    Data Grid 响应包括 after_failuresmin_wait 字段,如下所示:

    {
      "after_failures": 2,
      "min_wait": 1000
    }
  2. 修改 取 PUT 请求正文中的离线参数。

    PUT /v2/caches/{cacheName}/x-site/backups/{siteName}/take-offline-config
2.1.24.10. 从接收站点取消状态传输

如果两个备份位置之间的连接中断,您可以在接收推送的站点上取消状态传输。

从远程站点取消状态传输,并使用 ?action=cancel-receive-state 参数保留本地缓存的当前状态。

POST /v2/caches/{cacheName}/x-site/backups/{siteName}?action=cancel-receive-state

2.1.25. 滚动升级

在 Data Grid 集群间执行缓存数据的滚动升级

2.1.25.1. 同步数据

使用 POST 请求和 ?action=sync-data 参数将源集群的数据同步到目标集群:

POST /v2/caches/{cacheName}?action=sync-data

当操作完成后,Data Grid 使用复制到目标集群的条目总数进行响应。

2.1.25.2. 断开源集群

将数据同步到目标集群后,使用 POST 请求和 ?action=disconnect-source 参数断开与源集群的连接:

POST /v2/caches/{cacheName}?action=disconnect-source

2.2. 创建和管理计数器

通过 REST API 创建、删除和修改计数器。

2.2.1. 创建计数器

使用在有效负载中包含配置的 POST 请求创建计数器。

POST /rest/v2/counters/{counterName}

Weak Counter 示例

{
    "weak-counter":{
        "initial-value":5,
        "storage":"PERSISTENT",
        "concurrency-level":1
    }
}

Strong Counter 示例

{
    "strong-counter":{
        "initial-value":3,
        "storage":"PERSISTENT",
        "upper-bound":5
    }
}

2.2.2. 删除计数器

使用 DELETE 请求删除特定计数器。

DELETE /rest/v2/counters/{counterName}

2.2.3. 检索计数器配置

检索具有 GET 请求的特定计数器的配置。

GET /rest/v2/counters/{counterName}/config

Data Grid 以 JSON 格式使用计数器配置响应。

2.2.4. 在计数器中添加值

使用 POST 请求为特定计数器添加值。

重要

这个方法只处理 纯文本 内容。

POST /rest/v2/counters/{counterName}

如果请求有效负载为空,则计数器会递增,否则有效负载将解释为已签名并添加到计数器中。

注意

WEAK 计数器永远不会在操作后响应。

STRONG 计数器会在每个操作后返回当前值。

2.2.5. 获取计数器值

使用 GET 请求检索计数器值。

GET /rest/v2/counters/{counterName}
表 2.12. Headers
标头必需/可选参数

accept

可选

返回内容所需的格式。支持的格式为 application/jsontext/plain。如果未提供标头,则假定 JSON。

2.2.6. 重置计数

在没有 POST 请求和 ?action=reset 参数的情况下恢复计数器的 intial 值。

POST /rest/v2/counters/{counterName}?action=reset

2.2.7. 增加计数器

使用 POST 请求' 和 ?action=increment 参数递增计数器值。

POST /rest/v2/counters/{counterName}?action=increment
注意

WEAK 计数器永远不会在操作后响应。

STRONG 计数器会在每个操作后返回当前值。

2.2.8. 将 Deltas 添加到计数器

使用包含 ?action=adddelta 参数的 POST 请求向计数器添加任意值。

POST /rest/v2/counters/{counterName}?action=add&delta={delta}
注意

WEAK 计数器永远不会在操作后响应。

STRONG 计数器会在每个操作后返回当前值。

2.2.9. 缩减计数器值

使用 POST 请求和 ?action=decrement 参数减少计数器值。

POST /rest/v2/counters/{counterName}?action=decrement
注意

WEAK 计数器永远不会在操作后响应。

STRONG 计数器会在每个操作后返回当前值。

2.2.10. 在 Strong Counters 上执行 compareAndSet 操作

原子为具有 GET 请求和 compareAndSet 参数的强计数器设置值。

POST /rest/v2/counters/{counterName}?action=compareAndSet&expect={expect}&update={update}

如果当前值为 {expect},则以原子方式将值设为 {update}。如果操作成功,Data Grid 返回 true

2.2.11. 在 Strong Counters 上执行 compareAndSwap 操作

atomic 为强计数器设置值与 GET 请求,以及 compareAndSwap 参数。

POST /rest/v2/counters/{counterName}?action=compareAndSwap&expect={expect}&update={update}

如果当前值为 {expect},则以原子方式将值设为 {update}。如果操作成功,Data Grid 会返回有效负载中前面的值。

2.2.12. 列出计数器

检索具有 GET 请求的 Data Grid 集群中的计数器列表。

GET /rest/v2/counters/

2.3. 使用 Protobuf Schemas

通过 Data Grid REST API 创建和管理 Protobuf 模式、.proto 文件。

2.3.1. 创建 Protobuf Schemas

使用 POST 请求在 Data Grid 集群间创建 Protobuf 模式,该请求在有效负载中包含 protobuf 文件的内容。

POST /rest/v2/schemas/{schemaName}

如果架构已存在,Data Grid 返回 CONFLICT。如果架构无效,无论是由于语法错误,或由于其某些依赖项丢失,则数据网格会存储架构并在响应正文中返回错误。

Data Grid 使用架构名称和任何错误进行响应。

{
  "name" : "users.proto",
  "error" : {
    "message": "Schema users.proto has errors",
    "cause": "java.lang.IllegalStateException:Syntax error in error.proto at 3:8: unexpected label: messoge"
  }
}
  • name 是 Protobuf 模式的名称。
  • 有效 Protobuf 模式 的错误null。如果 Data Grid 无法成功验证架构,它会返回错误。

2.3.2. 读取 Protobuf Schemas

使用 GET 请求从 Data Grid 检索 Protobuf 模式。

GET /rest/v2/schemas/{schemaName}

2.3.3. 更新 Protobuf Schemas

修改包含有效负载中 protobuf 文件的内容的 PUT 请求的 Protobuf 模式。

PUT /rest/v2/schemas/{schemaName}

如果架构无效,无论是由于语法错误,或由于其某些依赖项丢失,则数据网格会更新架构并在响应正文中返回错误。

{
  "name" : "users.proto",
  "error" : {
    "message": "Schema users.proto has errors",
    "cause": "java.lang.IllegalStateException:Syntax error in error.proto at 3:8: unexpected label: messoge"
  }
}
  • name 是 Protobuf 模式的名称。
  • 有效 Protobuf 模式 的错误null。如果 Data Grid 无法成功验证架构,它会返回错误。

2.3.4. 删除 Protobuf Schemas

使用 DELETE 请求从 Data Grid 集群中删除 Protobuf 模式。

DELETE /rest/v2/schemas/{schemaName}

2.3.5. 列出 Protobuf Schemas

使用 GET 请求列出所有可用的 Protobuf 模式。

GET /rest/v2/schemas/

Data Grid 使用集群中所有可用的模式列表进行响应。

[ {
  "name" : "users.proto",
  "error" : {
    "message": "Schema users.proto has errors",
    "cause": "java.lang.IllegalStateException:Syntax error in error.proto at 3:8: unexpected label: messoge"
  }
}, {
  "name" : "people.proto",
  "error" : null
}]
  • name 是 Protobuf 模式的名称。
  • 有效 Protobuf 模式 的错误null。如果 Data Grid 无法成功验证架构,它会返回错误。

2.4. 使用缓存管理器

与 Data Grid Cache Manager 交互以获取集群和用量统计。

2.4.1. 获取基本缓存管理器信息

使用 GET 请求检索有关缓存管理器的信息。

GET /rest/v2/cache-managers/{cacheManagerName}

Data Grid 使用 JSON 格式的信息响应,如下例所示:

{
    "version":"xx.x.x-FINAL",
    "name":"default",
    "coordinator":true,
    "cache_configuration_names":[
        "___protobuf_metadata",
        "cache2",
        "CacheManagerResourceTest",
        "cache1"
    ],
    "cluster_name":"ISPN",
    "physical_addresses":"[127.0.0.1:35770]",
    "coordinator_address":"CacheManagerResourceTest-NodeA-49696",
    "cache_manager_status":"RUNNING",
    "created_cache_count":"3",
    "running_cache_count":"3",
    "node_address":"CacheManagerResourceTest-NodeA-49696",
    "cluster_members":[
        "CacheManagerResourceTest-NodeA-49696",
        "CacheManagerResourceTest-NodeB-28120"
    ],
    "cluster_members_physical_addresses":[
        "127.0.0.1:35770",
        "127.0.0.1:60031"
    ],
    "cluster_size":2,
    "defined_caches":[
        {
            "name":"CacheManagerResourceTest",
            "started":true
        },
        {
            "name":"cache1",
            "started":true
        },
        {
            "name":"___protobuf_metadata",
            "started":true
        },
        {
            "name":"cache2",
            "started":true
        }
    ]

}
  • 版本 包含 Data Grid 版本
  • name 包含配置中定义的缓存管理器的名称
  • 如果缓存 管理器是集群的协调器,则协调器为 true
  • cache_configuration_names 包含缓存管理器中定义的所有缓存配置的数组
  • cluster_ NAME 包含配置中定义的集群名称
  • physical_addresses 包含与缓存管理器关联的物理网络地址
  • coordinator_address 包含集群的协调器的物理网络地址
  • cache_manager_status 缓存管理器的生命周期状态。有关可能的值,请检查 org.infinispan.lifecycle.ComponentStatus 文档
  • created_cache_count 创建缓存的数量,不包括所有内部和外部缓存
  • 运行的创建的缓存的 running_cache_count 数量
  • node_address 包含缓存管理器的逻辑地址
  • cluster_memberscluster_members_physical_addresses 一个集群成员的逻辑和物理地址的数组
  • 集群中成员的 cluster_size 数量
  • defined_caches A 列表,缓存管理器中定义的所有缓存,不包括私有缓存,但包括可以访问的内部缓存

2.4.2. 获取集群健康状况

使用 GET 请求检索 Data Grid 集群的健康信息。

GET /rest/v2/cache-managers/{cacheManagerName}/health

Data Grid 使用 JSON 格式的集群健康信息响应,如下例所示:

{
    "cluster_health":{
        "cluster_name":"ISPN",
        "health_status":"HEALTHY",
        "number_of_nodes":2,
        "node_names":[
            "NodeA-36229",
            "NodeB-28703"
        ]
    },
    "cache_health":[
        {
            "status":"HEALTHY",
            "cache_name":"___protobuf_metadata"
        },
        {
            "status":"HEALTHY",
            "cache_name":"cache2"
        },
        {
            "status":"HEALTHY",
            "cache_name":"mycache"
        },
        {
            "status":"HEALTHY",
            "cache_name":"cache1"
        }
    ]

}
  • cluster_health 包含集群的健康状况

    • cluster_ NAME 指定配置中定义的集群名称。
    • health_status 提供以下之一:

      • DEGRADED 指示至少一个缓存处于降级模式。
      • HEALTHY_REBALANCING 指示至少一个缓存处于重新平衡状态。
      • HEALTHY 表示集群中的所有缓存实例都如预期运行。
      • FAILED 表示缓存未能从提供的配置开始。
    • number_of_nodes 显示群集成员的总数。为非集群(standalone)服务器返回值 0。
    • node_names 是所有群集成员的数组。单机服务器为空。
  • cache_health 包含每个缓存的健康状况信息

    • Status HEALTHY, DEGRADED, HEALTHY_REBALANCING 或 FAILED
    • cache_name 配置中定义的缓存名称。

2.4.3. 获取缓存管理器健康状态

使用不需要身份验证的 GET 请求检索 Cache Managers 的健康状况。

GET /rest/v2/cache-managers/{cacheManagerName}/health/status

Data Grid 以 text/plain 格式之一响应:

  • 健康
  • HEALTHY_REBALANCING
  • DEGRADED
  • 失败

2.4.4. 检查 REST 端点可用性

验证 Data Grid server REST 端点可用性与 HEAD 请求。

HEAD /rest/v2/cache-managers/{cacheManagerName}/health

如果您收到成功的响应代码,则 Data Grid REST 服务器正在运行并服务请求。

2.4.5. 获取缓存管理器的全局配置

使用 GET 请求检索缓存管理器的全局配置。

GET /rest/v2/cache-managers/{cacheManagerName}/config
表 2.13. Headers
标头必需/可选参数

accept

可选

返回内容所需的格式。支持的格式为 application/jsonapplication/xml。如果未提供标头,则假定 JSON。

2.4.6. 获取所有缓存的配置

检索具有 GET 请求的所有缓存的配置。

GET /rest/v2/cache-managers/{cacheManagerName}/cache-configs

Data Grid 使用包含每个缓存和缓存配置的 JSON 阵列响应,如下例所示:

[
  {
      "name":"cache1",
      "configuration":{
          "distributed-cache":{
              "mode":"SYNC",
              "partition-handling":{
                  "when-split":"DENY_READ_WRITES"
              },
              "statistics":true
          }
      }
  },
  {
      "name":"cache2",
      "configuration":{
          "distributed-cache":{
              "mode":"SYNC",
              "transaction":{
                  "mode":"NONE"
              }
          }
      }
  }
]

2.4.7. 列出可用的缓存模板

使用 GET 请求检索所有可用的 Data Grid 缓存模板。

GET /rest/v2/cache-managers/{cacheManagerName}/cache-configs/templates
提示

2.4.8. (实验性)包含缓存状态和信息

检索缓存管理器的所有可用缓存列表,以及缓存状态和详情,以及 GET 请求。

GET /rest/v2/cache-managers/{cacheManagerName}/caches

Data Grid 使用列出和描述每个可用缓存的 JSON 阵列响应,如下例所示:

[ {
  "status" : "RUNNING",
  "name" : "cache1",
  "type" : "local-cache",
  "simple_cache" : false,
  "transactional" : false,
  "persistent" : false,
  "bounded": false,
  "secured": false,
  "indexed": true,
  "has_remote_backup": true,
  "health":"HEALTHY"
}, {
  "status" : "RUNNING",
  "name" : "cache2",
  "type" : "distributed-cache",
  "simple_cache" : false,
  "transactional" : true,
  "persistent" : false,
  "bounded": false,
  "secured": false,
  "indexed": true,
  "has_remote_backup": true,
  "health":"HEALTHY"
}]

2.4.9. 获取缓存管理器统计信息

使用 GET 请求检索缓存管理器的统计信息。

GET /rest/v2/cache-managers/{cacheManagerName}/stats

Data Grid 以 JSON 格式使用缓存管理器统计信息响应,如下例所示:

{
    "statistics_enabled":true,
    "read_write_ratio":0.0,
    "time_since_start":1,
    "time_since_reset":1,
    "number_of_entries":0,
    "total_number_of_entries":0,
    "off_heap_memory_used":0,
    "data_memory_used":0,
    "misses":0,
    "remove_hits":0,
    "remove_misses":0,
    "evictions":0,
    "average_read_time":0,
    "average_read_time_nanos":0,
    "average_write_time":0,
    "average_write_time_nanos":0,
    "average_remove_time":0,
    "average_remove_time_nanos":0,
    "required_minimum_number_of_nodes":1,
    "hits":0,
    "stores":0,
    "current_number_of_entries_in_memory":0,
    "hit_ratio":0.0,
    "retrievals":0
}
  • 如果为 Cache Manager 启用了统计集合,则 statistics_enabledtrue
  • read_write_ratio 显示所有缓存的读/写比率。
  • time_since_start 显示自缓存管理器启动以来的时间(以秒为单位)。
  • time_since_reset 显示缓存管理器统计上次重置后的秒数。
  • number_of_entries 显示来自 Cache Manager 的所有缓存中当前条目总数。这个统计只返回本地缓存实例中的条目。
  • total_number_of_entries 显示缓存管理器的所有缓存上执行的存储操作数量。
  • off_heap_memory_used 显示此缓存容器使用的非堆内存的数量,以字节为单位
  • data_memory_used 显示 (以字节为单位 ),当前驱除算法估计用于所有缓存中的数据。如果没有启用驱除,则返回 0。
  • misses 显示所有缓存中的 get () 丢失的数量。
  • remove_hits 显示所有缓存间删除命中的数量。
  • remove_misses 显示所有缓存间删除未命中的数量。
  • 驱除 显示所有缓存上的驱除数量。
  • average_read_time 显示所有缓存中的 get () 操作的平均毫秒数。
  • average_read_time_nanosaverage_read_time 相同,但以纳秒为单位。
  • average_remove_time 显示所有缓存中的 remove () 操作的平均毫秒数。
  • average_remove_time_nanosaverage_remove_time 相同,但以纳秒为单位。
  • required_minimum_number_of_nodes 显示保证数据一致性所需的最小节点数量。
  • hits 提供所有缓存的 get () 命中数。
  • 存储 提供所有缓存的 put () 操作数量。
  • current_number_of_entries_in_memory 显示当前缓存中的条目总数,不包括传递的条目。
  • hit_ratio 为所有缓存提供总百分比的 hit/(hit+miss)比率。
  • 检索 显示 get () 操作总数。

2.4.10. 使用缓存管理器的跨站点操作

使用缓存管理器执行跨站点操作,以将操作应用到所有缓存。

2.4.10.1. 获取备份位置状态

使用 GET 请求,从缓存管理器检索所有备份位置的状态。

GET /rest/v2/cache-managers/{cacheManagerName}/x-site/backups/

Data Grid 以 JSON 格式的状态响应,如下例所示:

{
   "SFO-3":{
      "status":"online"
   },
   "NYC-2":{
      "status":"mixed",
      "online":[
         "CACHE_1"
      ],
      "offline":[
         "CACHE_2"
      ]
   }
}
表 2.14. 返回的状态
描述

online

本地集群中的所有节点都有一个带有备份位置的跨站点视图。

离线

本地集群中没有带有备份位置的跨站点视图。

mixed

本地集群中的某些节点具有带有备份位置的跨站点视图,本地集群中的其他节点没有跨站点视图。响应表示每个节点的状态。

2.4.10.2. 执行备份位置离线

使用 ?action=take-offline 参数使备份位置离线。

POST /rest/v2/cache-managers/{cacheManagerName}/x-site/backups/{siteName}?action=take-offline
2.4.10.3. 使备份位置在线

使用 ?action=bring-online 参数在线启动备份位置。

POST /rest/v2/cache-managers/{cacheManagerName}/x-site/backups/{siteName}?action=bring-online
2.4.10.4. 启动状态传输

使用 ?action=start-push-state 参数将所有缓存的状态推送到远程站点。

POST /rest/v2/cache-managers/{cacheManagerName}/x-site/backups/{siteName}?action=start-push-state
2.4.10.5. 取消状态传输

使用 ?action=cancel-push-state 参数取消持续状态传输操作。

POST /rest/v2/cache-managers/{cacheManagerName}/x-site/backups/{siteName}?action=cancel-push-state

2.5. 使用 Data Grid 服务器

监控和管理 Data Grid 服务器实例。

2.5.1. 检索基本服务器信息

使用 GET 请求查看有关 Data Grid 服务器的基本信息。

GET /rest/v2/server

Data Grid 以 JSON 格式使用服务器名称、代码名称和版本响应,如下例所示:

{
  "version":"Infinispan 'Codename' xx.x.x.Final"
}

2.5.2. 获取缓存管理器

使用 GET 请求,检索用于 Data Grid 服务器的缓存管理器列表。

GET /rest/v2/server/cache-managers

Data Grid 使用为服务器配置缓存管理器名称的数组响应。

2.5.3. 在忽略列表中添加缓存

配置 Data Grid 以临时排除客户端请求的特定缓存。发送包含缓存管理器名称和缓存的空 POST 请求。

POST /v2/server/ignored-caches/{cache-manager}/{cache}

Data Grid 返回用于 REST 客户端请求的服务不可用状态(503),为 Hot Rod 客户端请求返回一个 Server Error (code 0x85)。

注意

Data Grid 目前只支持每台服务器有一个缓存管理器。为将来的兼容性,您必须在请求中提供缓存管理器名称。

2.5.4. 从 Ignore Lists 中删除缓存

使用 DELETE 请求从 ignore 列表中删除缓存。

DELETE /v2/server/ignored-caches/{cache-manager}/{cache}

2.5.5. 确认忽略缓存

确认通过 GET 请求会忽略缓存。

GET /v2/server/ignored-caches/{cache-manager}

2.5.6. 获取服务器配置

使用 GET 请求检索数据网格服务器配置。

GET /rest/v2/server/config

Data Grid 使用 JSON 格式的配置响应,如下所示:

{
    "server":{
        "interfaces":{
            "interface":{
                "name":"public",
                "inet-address":{
                    "value":"127.0.0.1"
                }
            }
        },
        "socket-bindings":{
            "port-offset":0,
            "default-interface":"public",
            "socket-binding":[
                {
                    "name":"memcached",
                    "port":11221,
                    "interface":"memcached"
                }
            ]
        },
        "security":{
            "security-realms":{
                "security-realm":{
                    "name":"default"
                }
            }
        },
        "endpoints":{
            "socket-binding":"default",
            "security-realm":"default",
            "hotrod-connector":{
                "name":"hotrod"
            },
            "rest-connector":{
                "name":"rest"
            }
        }
    }
}

2.5.7. 获取环境变量

使用 GET 请求检索 Data Grid 服务器的所有环境变量。

GET /rest/v2/server/env

2.5.8. 获取 JVM 内存详情

检索具有 GET 请求的 Data Grid 服务器的 JVM 内存用量信息。

GET /rest/v2/server/memory

Data Grid 使用堆和非堆内存统计信息响应,直接内存用量,以及 JSON 格式的内存池和垃圾回收的信息。

2.5.9. 获取 JVM 线程转储

使用 GET 请求检索 JVM 的当前线程转储。

GET /rest/v2/server/threads

Data Grid 以 text/plain 格式使用当前的线程转储响应。

2.5.10. 获取 Data Grid 服务器的诊断报告

使用 GET 请求检索 Data Grid 服务器的聚合报告。

GET /rest/v2/server/report

Data Grid 使用 tar.gz 存档进行响应,其中包含一个聚合的报告,其中包含有关 Data Grid 服务器和主机的诊断信息。除了配置和日志文件外,该报告还提供有关 CPU、内存、打开文件、网络套接字和路由线程的详细信息。

2.5.11. 停止 Data Grid 服务器

使用 POST 请求停止 Data Grid 服务器。

POST /rest/v2/server?action=stop

网格以 200 (OK) 响应,然后停止运行。

2.6. 使用 Data Grid 集群

监控并在 Data Grid 集群上执行管理任务。

2.6.1. 停止 Data Grid 集群

使用 POST 请求关闭整个 Data Grid 集群。

POST /rest/v2/cluster?action=stop

网格以 200 (OK) 响应,然后执行整个集群的顺序关闭。

2.6.2. 在集群中停止特定 Data Grid 服务器

使用 GET 请求和 ?action=stop&server 参数关闭 Data Grid 集群中的一个或多个特定服务器。

POST /rest/v2/cluster?action=stop&server={server1_host}&server={server2_host}

数据网格以 200 (OK) 响应。

2.7. 数据网格服务器日志记录配置

在运行时查看和修改 Data Grid 集群上的日志记录配置。

2.7.1. 列出日志记录附加程序

查看所有配置的带有 GET 请求的附加程序列表。

GET /rest/v2/logging/appenders

Data Grid 使用 JSON 格式的附加器列表响应,如下例所示:

{
  "STDOUT" : {
    "name" : "STDOUT"
  },
  "JSON-FILE" : {
    "name" : "JSON-FILE"
  },
  "HR-ACCESS-FILE" : {
    "name" : "HR-ACCESS-FILE"
  },
  "FILE" : {
    "name" : "FILE"
  },
  "REST-ACCESS-FILE" : {
    "name" : "REST-ACCESS-FILE"
  }
}

2.7.2. 列出日志记录器

查看所有配置的带有 GET 请求的日志记录器的列表。

GET /rest/v2/logging/loggers

Data Grid 使用 JSON 格式的日志记录器列表响应,如下例所示:

[ {
  "name" : "",
  "level" : "INFO",
  "appenders" : [ "STDOUT", "FILE" ]
}, {
  "name" : "org.infinispan.HOTROD_ACCESS_LOG",
  "level" : "INFO",
  "appenders" : [ "HR-ACCESS-FILE" ]
}, {
  "name" : "com.arjuna",
  "level" : "WARN",
  "appenders" : [ ]
}, {
  "name" : "org.infinispan.REST_ACCESS_LOG",
  "level" : "INFO",
  "appenders" : [ "REST-ACCESS-FILE" ]
} ]

2.7.3. 创建/修改日志记录器

创建新日志记录器或修改带有 PUT 请求的现有日志记录器。

PUT /rest/v2/logging/loggers/{loggerName}?level={level}&appender={appender}&appender={appender}...

Data Grid 将 {loggerName} 标识的日志记录器级别设置为 {level}。(可选)可以为日志记录器设置一个或多个附加程序。如果没有指定附加程序,则将使用 root 日志记录器中指定的程序。

2.7.4. 删除日志记录器

删除具有 DELETE 请求的现有日志记录器。

DELETE /rest/v2/logging/loggers/{loggerName}

Data Grid 删除 {loggerName} 标识的日志记录器,并有效地恢复到使用根日志记录器配置。

2.8. 使用服务器任务

检索、执行和上传数据网格服务器任务。

2.8.1. 检索服务器任务信息

使用 GET 请求查看有关可用服务器任务的信息。

GET /rest/v2/tasks
表 2.15. 请求参数
参数必需/可选

type

可选

用户 : 将从结果中排除内部(admin)任务

Data Grid 使用可用任务列表进行响应。列表中包括任务的名称、处理任务的引擎、任务的指定参数、任务的执行模式,可以是 ONE_NODEALL_NODES,以及 JSON 格式的允许的安全角色,如下例所示:

[
  {
    "name": "SimpleTask",
    "type": "TaskEngine",
    "parameters": [
      "p1",
      "p2"
    ],
    "execution_mode": "ONE_NODE",
    "allowed_role": null
  },
  {
    "name": "RunOnAllNodesTask",
    "type": "TaskEngine",
    "parameters": [
      "p1"
    ],
    "execution_mode": "ALL_NODES",
    "allowed_role": null
  },
  {
    "name": "SecurityAwareTask",
    "type": "TaskEngine",
    "parameters": [],
    "execution_mode": "ONE_NODE",
    "allowed_role": "MyRole"
  }
]

2.8.2. 执行任务

使用 GET 请求执行任务,其中包含以 param 前缀的任务名称和必需参数。

GET /rest/v2/tasks/myTask?action=exec&param.p1=v1&param.p2=v2

Data Grid 使用任务结果做出响应。

2.8.3. 上传脚本任务

使用 PUTPOST 请求上传脚本任务。

提供 脚本作为请求的内容有效负载。在数据网格上传脚本后,您可以使用 GET 请求执行该脚本。

POST /rest/v2/tasks/taskName

法律通告

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 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

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

© 2024 Red Hat, Inc.