第 2 章 与 Data Grid REST API 交互
Data Grid REST API 允许您监控、维护和管理数据网格部署,并提供对数据的访问。
默认情况下,当成功时,Data Grid REST API 操作会返回 200 (OK)。但是,当成功处理某些操作时,它们会返回 HTTP 状态代码,如 204 或 202,而不是 200。
2.1. 创建和管理缓存 复制链接链接已复制到粘贴板!
创建和管理 Data Grid 缓存并对数据执行操作。
2.1.1. 创建缓存 复制链接链接已复制到粘贴板!
在 Data Grid 集群中使用 POST 请求(在有效负载中包含 XML 或 JSON 配置)中创建命名缓存。
POST /rest/v2/caches/{cacheName}
POST /rest/v2/caches/{cacheName}
| 标头 | 必需/可选 | 参数 |
|---|---|---|
|
| 必需 |
为 Data Grid 配置有效负载设置 MediaType ; |
|
| 可选 | 用于设置 AdminFlags |
2.1.1.1. 缓存配置 复制链接链接已复制到粘贴板!
您可以使用 XML、JSON 和 YAML 格式创建声明性缓存配置。
所有声明缓存都必须符合 Data Grid 模式。JSON 格式的配置必须遵循 XML 配置的结构,元素对应于字段和属性。
Data Grid 将字符限制为最多 255 个缓存名称或缓存模板名称。如果您超过这个字符限制,Data Grid 会抛出异常。编写 succinct 缓存名称和缓存模板名称。
文件系统可能会为文件名长度设置限制,因此请确保缓存的名称不超过这个限制。如果缓存名称超过文件系统的命名限制,则对该缓存的一般操作或初始操作可能会失败。写入 succinct 文件名。
分布式缓存
XML
JSON
YAML
复制的缓存
XML
JSON
YAML
多个缓存
XML
JSON
YAML
2.1.2. 修改缓存 复制链接链接已复制到粘贴板!
使用在有效负载中包含 XML 或 JSON 配置的 PUT 请求,在 Data Grid 集群中更改缓存配置中的属性。
只有在更改与现有配置兼容时,才能修改缓存。
例如,您无法使用复制的缓存配置来修改分布式缓存。同样,如果您使用特定属性创建缓存配置,您无法修改配置来改用不同的属性。例如,尝试通过为 max-count 属性指定值来修改缓存配置,如果已设置了 max-size,则会导致无效的配置。
PUT /rest/v2/caches/{cacheName}
PUT /rest/v2/caches/{cacheName}
| 标头 | 必需/可选 | 参数 |
|---|---|---|
|
| 必需 |
为 Data Grid 配置有效负载设置 MediaType ; |
|
| 可选 | 用于设置 AdminFlags |
2.1.3. 验证缓存 复制链接链接已复制到粘贴板!
检查带有 HEAD 请求的 Data Grid 集群中是否存在缓存。
HEAD /rest/v2/caches/{cacheName}
HEAD /rest/v2/caches/{cacheName}
通过 GET 请求检索缓存运行状况。
GET /rest/v2/caches/{cacheName}?action=health
GET /rest/v2/caches/{cacheName}?action=health
2.1.4. 使用模板创建缓存 复制链接链接已复制到粘贴板!
使用 POST 请求和 ?template= 参数从 Data Grid 模板创建缓存。
POST /rest/v2/caches/{cacheName}?template={templateName}
POST /rest/v2/caches/{cacheName}?template={templateName}
请参阅 列出可用缓存模板。
2.1.5. 检索缓存配置 复制链接链接已复制到粘贴板!
使用 GET 请求检索 Data Grid 缓存配置。
GET /rest/v2/caches/{name}?action=config
GET /rest/v2/caches/{name}?action=config
| 标头 | 必需/可选 | 参数 |
|---|---|---|
|
| 可选 |
设置返回内容所需的格式。支持的格式有 |
2.1.6. 在 XML、JSON 和 YAML 之间转换缓存配置 复制链接链接已复制到粘贴板!
调用带有有效配置和 ?action=convert 参数的 POST 请求。在 Accept 标头指定的类型中,Data Grid 以等效的配置表示。
POST /rest/v2/caches?action=convert
POST /rest/v2/caches?action=convert
要转换缓存配置,您必须使用 Content-Type 标头和所需的输出格式,使用 Accept 标头指定配置的输入格式。例如,以下命令将复制的缓存配置从 XML 转换为 YAML:
curl localhost:11222/rest/v2/caches?action=convert \ --digest -u username:password \ -X POST -H "Accept: application/yaml" -H "Content-Type: application/xml" \ -d '<replicated-cache mode="SYNC" statistics="false"><encoding media-type="application/x-protostream"/><expiration lifespan="300000" /><memory max-size="400MB" when-full="REMOVE"/></replicated-cache>'
curl localhost:11222/rest/v2/caches?action=convert \
--digest -u username:password \
-X POST -H "Accept: application/yaml" -H "Content-Type: application/xml" \
-d '<replicated-cache mode="SYNC" statistics="false"><encoding media-type="application/x-protostream"/><expiration lifespan="300000" /><memory max-size="400MB" when-full="REMOVE"/></replicated-cache>'
2.1.7. 比较缓存配置 复制链接链接已复制到粘贴板!
使用包含两个缓存配置和 ?action=compare 参数的 多部分数据 正文调用 POST 请求。
POST /rest/v2/caches?action=compare
POST /rest/v2/caches?action=compare
添加 ignoreMutable=true 参数,以忽略比较中的可变属性。
如果配置相等,则数据网格使用 204 (No Content) 响应,如果配置相同,则它们会被 409 (Conflict )。
2.1.8. 检索所有缓存详情 复制链接链接已复制到粘贴板!
调用 GET 请求,以检索 Data Grid 缓存的所有详细信息。
GET /rest/v2/caches/{name}?action=stats
GET /rest/v2/caches/{name}?action=stats
Data Grid 提供 JSON 响应,如下所示:
-
统计缓存的当前统计信息。 -
调整缓存的预期大小。
-
配置缓存配置。 -
当重新哈希正在进行时,
rehash_in_progresstrue。 -
索引进行时,
indexing_in_progresstrue。 -
如果启用了重新平衡,则
rebalancing_enabled为 true。获取此属性可能在服务器上失败。在这种情况下,属性不会存在于有效负载中。 -
启用过期时间时
绑定。 -
如果缓存被索引,则
索引为true。 -
如果缓存被保留,则持久性为 true。 -
如果缓存是
事务性,则事务性为 true。 -
如果缓存被保护,则安全为 true。 -
如果缓存有远程备份,则
has_remote_backuptrue。 -
key_storage缓存密钥的介质类型。 -
value_storage缓存值的介质类型。
key_storage 和 value_storage 与缓存的编码配置匹配。对于没有编码的服务器缓存,当缓存被索引且 应用程序/ 。
未知时,Data Grid 会假定应用程序/ x-protostream
2.1.9. 重置所有缓存统计信息 复制链接链接已复制到粘贴板!
调用 POST 请求,以重置 Data Grid 缓存的所有统计信息。
POST /rest/v2/caches/{name}?action=stats-reset
POST /rest/v2/caches/{name}?action=stats-reset
2.1.10. 检索缓存的数据分发 复制链接链接已复制到粘贴板!
调用 GET 请求,以检索 Data Grid 缓存的数据分布的所有详细信息。
GET /rest/v2/caches/{name}?action=distribution
GET /rest/v2/caches/{name}?action=distribution
Data Grid 提供 JSON 响应,如下所示:
列表中的每个元素代表节点。这些属性是:
-
node_name是节点名称 -
node_addresses是所有节点的物理地址的列表。 -
memory_entries节点在属于缓存的内存中保存的条目数。 -
total_entries节点内存和属于缓存的磁盘的条目数。 -
memory_used数值以字节为单位,驱除算法估计缓存占用情况。如果没有启用驱除,则返回 -1。
2.1.11. 检索所有可变缓存配置属性 复制链接链接已复制到粘贴板!
调用 GET 请求,以检索 Data Grid 缓存的所有可变缓存配置属性。
GET /rest/v2/caches/{name}?action=get-mutable-attributes
GET /rest/v2/caches/{name}?action=get-mutable-attributes
Data Grid 提供 JSON 响应,如下所示:
添加 full 参数以获取值和类型信息:
GET /rest/v2/caches/mycache?action=get-mutable-attributes&full=true
GET /rest/v2/caches/mycache?action=get-mutable-attributes&full=true
Data Grid 提供 JSON 响应,如下所示:
对于 type enum 的属性,额外的 universe 属性将包含一组可能的值。
2.1.12. 更新缓存配置属性 复制链接链接已复制到粘贴板!
调用 POST 请求,以更改可变缓存配置属性。
POST /rest/v2/caches/{name}?action=set-mutable-attributes&attribute-name={attributeName}&attribute-value={attributeValue}
POST /rest/v2/caches/{name}?action=set-mutable-attributes&attribute-name={attributeName}&attribute-value={attributeValue}
2.1.13. 添加条目 复制链接链接已复制到粘贴板!
使用 POST 请求向缓存添加条目。
POST /rest/v2/caches/{cacheName}/{cacheKey}
POST /rest/v2/caches/{cacheName}/{cacheKey}
前面的请求使用 cacheKey 密钥将有效负载或请求正文放在 cacheName 缓存中。请求替换任何已存在的数据,并在应用时更新 Time-To-Live 和 Last-Modified 值。
如果成功创建了该条目,服务会返回 204 (非内容)。
如果指定键已存在值,POST 请求会返回 409 (Conflict),且不会修改值。若要更新值,您应该使用 PUT 请求。请参阅 替换条目。
| 标头 | 必需/可选 | 参数 |
|---|---|---|
|
| 可选 | 设置请求中密钥的内容类型。如需更多信息,请参阅 Key-Content-Type。 |
|
| 可选 | 为键设置 MediaType。 |
|
| 可选 | 设置条目自动删除前的秒数。如果没有设置此参数,Data Grid 将使用配置中的默认值。如果您设置了负值,则该条目永远不会被删除。 |
|
| 可选 | 设置条目可以闲置的秒数。如果在最大闲置时间过后没有对条目发生读取或写入操作,该条目将会被自动删除。如果没有设置此参数,Data Grid 将使用配置中的默认值。如果您设置了负值,则该条目永远不会被删除。 |
|
| 可选 | 用于添加条目的标志。如需更多信息,请参阅 标记。 |
标志 标头还适用于涉及缓存数据操作的所有其他操作,
如果 timeToLiveSeconds 和 maxIdleTimeSeconds 的值为 0,Data Grid 则使用来自配置的默认 lifespan 和 maxIdle 值。
如果 只有 maxIdleTimeSeconds 的值为 0, Data Grid 使用:
-
配置中的默认
maxIdle值。 -
如果未传递值,则
timeToLiveSeconds的值作为请求参数传递,或值为-1。
如果 只有 timeToLiveSeconds 的值为 0, Data Grid 使用:
-
配置中的
默认lifespan 值。 -
如果没有传递值,则
maxIdle的值作为请求参数传递,或值为-1。
2.1.14. 替换条目 复制链接链接已复制到粘贴板!
使用 PUT 请求替换缓存中的条目。
PUT /rest/v2/caches/{cacheName}/{cacheKey}
PUT /rest/v2/caches/{cacheName}/{cacheKey}
如果指定键已存在值,PUT 请求会更新值。如果您不想修改现有值,请使用返回 409 (Conflict) 的 POST 请求,而不是修改值。请参阅 添加值。
2.1.15. 按键检索数据 复制链接链接已复制到粘贴板!
使用 GET 请求检索特定密钥的数据。
GET /rest/v2/caches/{cacheName}/{cacheKey}
GET /rest/v2/caches/{cacheName}/{cacheKey}
服务器在响应正文中的给定密钥 cacheKey 下返回来自给定 cacheName 的数据。响应包含与 MediaType 协商对应的 Content-Type 标头。
浏览器也可以直接访问缓存,如内容交付网络(CDN)。Data Grid 为每个条目返回一个唯一的 ETag,以及 Last-Modified 和 Expires 标头字段。
这些字段提供有关请求中返回的数据状态的信息。eTags 允许浏览器和其他客户端仅请求已更改的数据,从而节省带宽。
| 标头 | 必需/可选 | 参数 |
|---|---|---|
|
| 可选 |
设置请求中密钥的内容类型。默认为 |
|
| 可选 | 设置返回内容所需的格式。如需更多信息,请参阅 Accept。 |
在查询字符串中附加 extended 参数以获取附加信息:
GET /rest/v2/caches/{cacheName}/{cacheKey}?extended
GET /rest/v2/caches/{cacheName}/{cacheKey}?extended
前面的请求返回自定义标头:
-
cluster-Primary-Owner返回键的主所有者的节点名称。 -
cluster-Node-Name返回处理请求的服务器的 JGroups 节点名称。 -
cluster-Physical-Address返回处理请求的服务器的物理 JGroups 地址。
2.1.16. 检查 Entries Exist 复制链接链接已复制到粘贴板!
验证特定的条目是否存在 HEAD 请求。
HEAD /rest/v2/caches/{cacheName}/{cacheKey}
HEAD /rest/v2/caches/{cacheName}/{cacheKey}
前面的请求仅返回与条目存储的标头字段和相同内容。例如,如果您存储了 String,请求会返回一个 String。如果您存储了二进制、base64 编码的、Blob 或序列化 Java 对象,则 Data Grid 不会对请求中的内容进行序列化。
HEAD 请求也支持 扩展 参数。
| 标头 | 必需/可选 | 参数 |
|---|---|---|
|
| 可选 |
设置请求中密钥的内容类型。默认为 |
2.1.17. 删除条目 复制链接链接已复制到粘贴板!
使用 DELETE 请求从缓存中删除条目。
DELETE /rest/v2/caches/{cacheName}/{cacheKey}
DELETE /rest/v2/caches/{cacheName}/{cacheKey}
| 标头 | 必需/可选 | 参数 |
|---|---|---|
|
| 可选 |
设置请求中密钥的内容类型。默认为 |
2.1.18. 检查缓存条目的发布 复制链接链接已复制到粘贴板!
调用此端点,以检索 Data Grid 缓存条目的数据分布详情。
GET /rest/v2/caches/{cacheName}/{cacheKey}?action=distribution
GET /rest/v2/caches/{cacheName}/{cacheKey}?action=distribution
Data Grid 提供 JSON 响应,如下所示:
-
如果缓存包含密钥,则
contains_key会返回true -
owners提供包含密钥的节点列表
owners 列表包括以下属性:
-
node_name显示节点的名称 -
primary标识是主所有者的节点 -
node_addresses显示可以访问该节点的 IP 地址和端口
2.1.19. 删除缓存 复制链接链接已复制到粘贴板!
使用 DELETE 请求从 Data Grid 集群中删除缓存。
DELETE /rest/v2/caches/{cacheName}
DELETE /rest/v2/caches/{cacheName}
2.1.20. 从缓存检索所有密钥 复制链接链接已复制到粘贴板!
调用 GET 请求,以 JSON 格式检索缓存中的所有密钥。
GET /rest/v2/caches/{cacheName}?action=keys
GET /rest/v2/caches/{cacheName}?action=keys
| 参数 | 必需/可选 | value |
|---|---|---|
|
| 可选 |
指定使用 InputStream 检索的最大键数。负值检索所有键。默认值为 |
|
| 可选 |
在检索密钥时指定内部批处理大小。默认值为 |
2.1.21. 从缓存检索所有条目 复制链接链接已复制到粘贴板!
调用 GET 请求,以 JSON 格式检索缓存中的所有条目。
GET /rest/v2/caches/{cacheName}?action=entries
GET /rest/v2/caches/{cacheName}?action=entries
| 参数 | 必需/可选 | value |
|---|---|---|
|
| 可选 |
在响应中包含每个条目的元数据。默认值为 |
|
| 可选 |
指定响应中包含的最大键数。负值检索所有键。默认值为 |
|
| 可选 |
在检索密钥时指定内部批处理大小。默认值为 |
|
| 可选 |
如果为 |
Data Grid 提供 JSON 响应,如下所示:
-
条目的密钥。
-
值:条目的值。 -
timeToLiveSeconds基于条目生命周期,但以秒为单位,如果条目永不过期,则为-1。除非设置了 metadata="true",否则不会返回。 -
maxIdleTimeSeconds最大空闲时间(以秒为单位)或-1 (如果条目永不过期)。除非设置了 metadata="true",否则不会返回。 -
为 immortal 条目创建的时间,或为
-1创建条目。除非设置了 metadata="true",否则不会返回。 -
lastUsedLast time when a operation on the entry or-1for immortal 条目。除非设置了 metadata="true",否则不会返回。 -
当条目过期或
-1用于 immortal 条目时的expireTime时间。除非设置了 metadata="true",否则不会返回。 -
Version 与缓存条目相关的元数据版本。
只有在存在值时才。 -
topologyId一个集群版本元数据的拓扑 Id。只有在存在值时才。
2.1.22. 清除缓存 复制链接链接已复制到粘贴板!
要从缓存中删除所有数据,请使用 ?action=clear 参数调用 POST 请求。
POST /rest/v2/caches/{cacheName}?action=clear
POST /rest/v2/caches/{cacheName}?action=clear
如果操作成功完成,服务会返回 204 (不内容)
2.1.23. 获取缓存大小 复制链接链接已复制到粘贴板!
使用 GET 请求和 ?action=size 参数在整个集群中检索缓存的大小。
GET /rest/v2/caches/{cacheName}?action=size
GET /rest/v2/caches/{cacheName}?action=size
2.1.24. 获取缓存统计信息 复制链接链接已复制到粘贴板!
获取使用 GET 请求的缓存的运行时统计信息。
GET /rest/v2/caches/{cacheName}?action=stats
GET /rest/v2/caches/{cacheName}?action=stats
2.1.25. 列出缓存 复制链接链接已复制到粘贴板!
使用 GET 请求列出 Data Grid 集群中的所有可用缓存。
GET /rest/v2/caches/
GET /rest/v2/caches/
2.1.26. 获取缓存状态和信息 复制链接链接已复制到粘贴板!
检索缓存管理器的所有可用缓存的列表,以及缓存状态和详细信息,以及 GET 请求。
GET /rest/v2/caches?action=detailed
GET /rest/v2/caches?action=detailed
Data Grid 响应列出并描述每个可用缓存的 JSON 数组,如下例所示:
| 参数 | 必需/可选 | 描述 |
|---|---|---|
|
| 可选 |
如果为 |
2.1.27. 列出角色的可访问缓存 复制链接链接已复制到粘贴板!
启用安全性后,检索角色的所有可访问缓存的列表。此操作需要 ADMIN 权限。
GET /rest/v2/caches?action=role-accessible&role=observer
GET /rest/v2/caches?action=role-accessible&role=observer
data Grid 使用 JSON 响应,如下例所示:
{
"secured" : ["securedCache1", "securedCache2"],
"non-secured" : ["cache1", "cache2", "cache3"]
}
{
"secured" : ["securedCache1", "securedCache2"],
"non-secured" : ["cache1", "cache2", "cache3"]
}
| 参数 | 必需/可选 | 描述 |
|---|---|---|
|
| 可选 |
如果为 |
2.1.28. 侦听缓存事件 复制链接链接已复制到粘贴板!
使用 服务器事件接收缓存事件。事件值 将是 cache-entry-created,cache-entry-removed,cache-entry-updated,cache-entry-expired 之一。data 值将包含触发事件(以 Accept 标头设置的格式)的键。
GET /rest/v2/caches/{name}?action=listen
GET /rest/v2/caches/{name}?action=listen
| 标头 | 必需/可选 | 参数 |
|---|---|---|
|
| 可选 |
设置返回内容所需的格式。支持的格式为 |
2.1.29. 启用重新平衡 复制链接链接已复制到粘贴板!
打开特定缓存的自动重新平衡。
POST /rest/v2/caches/{cacheName}?action=enable-rebalancing
POST /rest/v2/caches/{cacheName}?action=enable-rebalancing
2.1.30. 禁用重新平衡 复制链接链接已复制到粘贴板!
关闭特定缓存的自动重新平衡。
POST /rest/v2/caches/{cacheName}?action=disable-rebalancing
POST /rest/v2/caches/{cacheName}?action=disable-rebalancing
2.1.31. 获取缓存可用性 复制链接链接已复制到粘贴板!
检索缓存的可用性。
GET /rest/v2/caches/{cacheName}?action=get-availability
GET /rest/v2/caches/{cacheName}?action=get-availability
您可以获取内部缓存的可用性,但可能会在未来的 Data Grid 版本中有所变化。
2.1.32. 设置缓存可用性 复制链接链接已复制到粘贴板!
在使用 DENY_READ_WRITES 或 ALLOW_READS 分区处理策略时,更改集群缓存的可用性。
POST /rest/v2/caches/{cacheName}?action=set-availability&availability={AVAILABILITY}
POST /rest/v2/caches/{cacheName}?action=set-availability&availability={AVAILABILITY}
| 参数 | 必需/可选 | value |
|---|---|---|
|
| 必需 | AVAILABLE 或 DEGRADED_MODE |
-
AVAILABLE使缓存对网络分区中的所有节点可用。 -
DEGRADED_MODE可防止在网络分区发生时对缓存进行读写操作。
您可以设置内部缓存的可用性,但可能会在未来的 Data Grid 版本中有所变化。
2.1.33. 设置 Stable Topology 复制链接链接已复制到粘贴板!
默认情况下,在集群关闭后,Data Grid 会等待所有节点加入集群并恢复拓扑。但是,您可以使用 REST 操作将当前集群拓扑定义为特定缓存的稳定。
POST /rest/v2/caches/{cacheName}?action=initialize&force={FORCE}
POST /rest/v2/caches/{cacheName}?action=initialize&force={FORCE}
| 参数 | 必需/可选 | value |
|---|---|---|
|
| 可选 | true 或 false。 |
-
当当前拓扑中缺失的节点数量大于或等于拥有者的数量时,需要
force。
手动安装拓扑可能会导致数据丢失,只有在无法重新创建初始拓扑时才执行此操作。
2.1.34. 使用 REST API 进行索引和查询 复制链接链接已复制到粘贴板!
使用来自任何 HTTP 客户端的 GET 请求和 ?action=search&query 参数查询远程缓存。
GET /rest/v2/caches/{cacheName}?action=search&query={ickle query}
GET /rest/v2/caches/{cacheName}?action=search&query={ickle query}
Data Grid 响应
-
hit_count显示查询的结果总数。 -
hit_count_exact为true,这意味着hit_count是准确的。为false时,这意味着点击数值为较低的绑定。 -
hits代表来自查询的单个匹配的数组。 hit指的是与查询中匹配项对应的每个对象。提示如果使用
Select子句,则 hits 可以包含所有字段或字段子集。
| 参数 | 必需/可选 | value |
|---|---|---|
|
| 必需 | 指定查询字符串。 |
|
| 可选 |
指定要返回的第一个结果的索引。默认值为 |
|
| 可选 |
设置要返回的结果数。默认值为 |
|
| 可选 |
将索引查询的点击数所需的准确性限制为上限。默认值为 |
|
| 可选 |
为 |
要使用请求的正文而不是指定查询参数,请按如下所示调用 POST 请求:
POST /rest/v2/caches/{cacheName}?action=search
POST /rest/v2/caches/{cacheName}?action=search
在请求正文中查询
{
"query":"from Entity where name:\"user1\"",
"max_results":20,
"offset":10
}
{
"query":"from Entity where name:\"user1\"",
"max_results":20,
"offset":10
}
2.1.34.1. 重建索引 复制链接链接已复制到粘贴板!
当您删除字段或更改索引字段定义时,您必须重建索引以确保索引与缓存中的数据一致。
使用 REST、CLI、Data Grid 控制台或远程客户端重建 Protobuf 模式可能会导致不一致。远程客户端可能具有不同的 Protostream 实体版本,这可能会导致不可靠的行为。
使用 POST 请求和 ?action=reindex 参数在缓存中重新索引所有数据。
POST /rest/v2/caches/{cacheName}/search/indexes?action=reindex
POST /rest/v2/caches/{cacheName}/search/indexes?action=reindex
| 参数 | 必需/可选 | value |
|---|---|---|
|
| 可选 |
*
* |
|
| 可选 |
为 |
2.1.34.2. 更新索引模式 复制链接链接已复制到粘贴板!
更新索引模式操作可让您以最少的停机时间添加模式更改。Data Grid 不移除之前索引的数据并重新创建索引模式,而是为现有的架构添加新字段。
使用 POST 请求和 ?action=updateSchema 参数,更新您缓存中的值的索引模式。
POST /rest/v2/caches/{cacheName}/search/indexes?action=updateSchema
POST /rest/v2/caches/{cacheName}/search/indexes?action=updateSchema
2.1.34.3. 清除索引 复制链接链接已复制到粘贴板!
使用 POST 请求和 ?action=clear 参数从缓存中删除所有索引。
POST /rest/v2/caches/{cacheName}/search/indexes?action=clear
POST /rest/v2/caches/{cacheName}/search/indexes?action=clear
如果操作成功完成,服务会返回 204 (不内容)
2.1.34.4. get Indexes Metamodel 复制链接链接已复制到粘贴板!
介绍此缓存中定义的所有索引的完整索引模式 metamodel。
GET /rest/v2/caches/{cacheName}/search/indexes/metamodel
GET /rest/v2/caches/{cacheName}/search/indexes/metamodel
Data Grid 响应
2.1.34.5. 检索查询和索引统计 复制链接链接已复制到粘贴板!
使用 GET 请求获取缓存中查询和索引的信息。
您必须在缓存配置中启用统计信息,或者结果为空。
GET /rest/v2/caches/{cacheName}/search/stats
GET /rest/v2/caches/{cacheName}/search/stats
| 参数 | 必需/可选 | value |
|---|---|---|
|
| 可选 |
使用 |
Data Grid 响应
在 部分中:
query
-
indexed_local提供索引查询的详情。 -
indexed_distributed提供关于分布式索引查询的详细信息。 -
混合提供关于仅部分使用索引的查询的详细信息。 -
non_indexed提供有关没有使用索引的查询的详情。 -
entity_load提供有关在索引查询执行后获取对象的缓存操作详情。
时间始终以纳秒为单位。
在 部分中:
index
Type提供缓存中配置的每个索引类型(类名称或 protobuf 消息)的详情。-
计算为类型索引的实体数。
-
类型
的大小(以字节为单位)。
-
计算为类型索引的实体数。
-
如果值为
true,则索引程序在缓存中运行。
2.1.34.6. 清除查询统计信息 复制链接链接已复制到粘贴板!
使用 POST 请求和 ?action=clear 参数重置运行时统计信息。
POST /rest/v2/caches/{cacheName}/search/stats?action=clear
POST /rest/v2/caches/{cacheName}/search/stats?action=clear
Data Grid 仅重置本地节点的查询执行时间。此操作不会清除索引统计信息。
2.1.34.7. 检索索引统计信息(已弃用) 复制链接链接已复制到粘贴板!
使用 GET 请求获取缓存中索引的信息。
GET /rest/v2/caches/{cacheName}/search/indexes/stats
GET /rest/v2/caches/{cacheName}/search/indexes/stats
Data Grid 响应
-
indexed_class_names提供缓存中存在的索引的类名称。对于 Protobuf,值始终为org.infinispan.query.remote.impl.indexing.ProtobufValueWrapper。 -
indexed_entities_count提供每个类索引的实体数量。 -
index_sizes为缓存中的每个索引提供大小(以字节为单位)。 -
重新索引指示是否对缓存执行重新索引操作。如果值为true,则MassIndexer在缓存中启动。
2.1.34.8. 检索查询统计信息(已弃用) 复制链接链接已复制到粘贴板!
获取有关使用 GET 请求在缓存中运行的查询的信息。
GET /rest/v2/caches/{cacheName}/search/query/stats
GET /rest/v2/caches/{cacheName}/search/query/stats
Data Grid 响应
-
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.34.9. 清除查询统计信息(已弃用) 复制链接链接已复制到粘贴板!
使用 POST 请求和 ?action=clear 参数重置运行时统计信息。
POST /rest/v2/caches/{cacheName}/search/query/stats?action=clear
POST /rest/v2/caches/{cacheName}/search/query/stats?action=clear
2.1.35. 使用缓存进行跨站点操作 复制链接链接已复制到粘贴板!
使用 Data Grid REST API 执行跨站点复制操作。
2.1.35.1. 获取所有备份位置的状态 复制链接链接已复制到粘贴板!
使用 GET 请求检索所有备份位置的状态。
GET /rest/v2/caches/{cacheName}/x-site/backups/
GET /rest/v2/caches/{cacheName}/x-site/backups/
Data Grid 以 JSON 格式为每个备份位置的状态响应,如下例所示:
| value | 描述 |
|---|---|
|
| 本地集群中的所有节点都有一个带有备份位置的跨站点视图。 |
|
| 本地集群中没有带有备份位置的跨站点视图。 |
|
| 本地集群中的某些节点具有带有备份位置的跨站点视图,本地集群中的其他节点没有跨站点视图。响应表示每个节点的状态。 |
2.1.35.2. 获取特定备份位置的状态 复制链接链接已复制到粘贴板!
使用 GET 请求检索备份位置的状态。
GET /rest/v2/caches/{cacheName}/x-site/backups/{siteName}
GET /rest/v2/caches/{cacheName}/x-site/backups/{siteName}
Data Grid 以 JSON 格式通过站点中的每个节点状态进行响应,如下例所示:
{
"NodeA":"offline",
"NodeB":"online"
}
{
"NodeA":"offline",
"NodeB":"online"
}
| value | 描述 |
|---|---|
|
| 节点在线。 |
|
| 节点离线。 |
|
| 无法检索状态。远程缓存可以在请求期间关闭或发生网络错误。 |
2.1.35.3. 使备份位置离线 复制链接链接已复制到粘贴板!
通过 POST 请求和 ?action=take-offline 参数使备份位置离线。
POST /rest/v2/caches/{cacheName}/x-site/backups/{siteName}?action=take-offline
POST /rest/v2/caches/{cacheName}/x-site/backups/{siteName}?action=take-offline
2.1.35.4. 在线提供备份位置 复制链接链接已复制到粘贴板!
使用 ?action=bring-online 参数在线启动备份位置。
POST /rest/v2/caches/{cacheName}/x-site/backups/{siteName}?action=bring-online
POST /rest/v2/caches/{cacheName}/x-site/backups/{siteName}?action=bring-online
2.1.35.5. 将状态推送到备份位置 复制链接链接已复制到粘贴板!
使用 ?action=start-push-state 参数将缓存状态推送到备份位置。
POST /rest/v2/caches/{cacheName}/x-site/backups/{siteName}?action=start-push-state
POST /rest/v2/caches/{cacheName}/x-site/backups/{siteName}?action=start-push-state
2.1.35.6. 取消状态传输 复制链接链接已复制到粘贴板!
使用 ?action=cancel-push-state 参数取消状态传输操作。
POST /rest/v2/caches/{cacheName}/x-site/backups/{siteName}?action=cancel-push-state
POST /rest/v2/caches/{cacheName}/x-site/backups/{siteName}?action=cancel-push-state
2.1.35.7. 获取状态传输状态 复制链接链接已复制到粘贴板!
使用 ?action=push-state-status 参数检索状态传输操作的状态。
GET /rest/v2/caches/{cacheName}/x-site/backups?action=push-state-status
GET /rest/v2/caches/{cacheName}/x-site/backups?action=push-state-status
Data Grid 以 JSON 格式为每个备份位置的状态进行响应,如下例所示:
{
"NYC":"CANCELED",
"LON":"OK"
}
{
"NYC":"CANCELED",
"LON":"OK"
}
| value | 描述 |
|---|---|
|
| 状态传输到备份位置正在进行。 |
|
| 状态传输成功完成。 |
|
| 出现错误,状态为 transfer。检查日志文件。 |
|
| 状态转移取消正在进行。 |
2.1.35.8. 清除状态传输状态 复制链接链接已复制到粘贴板!
使用 ?action=clear-push-state-status 参数发送站点的清除状态传输状态。
POST /rest/v2/caches/{cacheName}/x-site/local?action=clear-push-state-status
POST /rest/v2/caches/{cacheName}/x-site/local?action=clear-push-state-status
2.1.35.9. 修改 会使离线条件 复制链接链接已复制到粘贴板!
如果满足某些条件,站点将处于离线状态。修改离线参数,以控制备份位置自动离线的时间。
流程
检查配置了
GET请求和take-offline-config参数的离线参数。GET /rest/v2/caches/{cacheName}/x-site/backups/{siteName}/take-offline-configGET /rest/v2/caches/{cacheName}/x-site/backups/{siteName}/take-offline-configCopy to Clipboard Copied! Toggle word wrap Toggle overflow Data Grid 响应包括
after_failures和min_wait字段,如下所示:{ "after_failures": 2, "min_wait": 1000 }{ "after_failures": 2, "min_wait": 1000 }Copy to Clipboard Copied! Toggle word wrap Toggle overflow 修改 取
PUT请求正文中的离线参数。PUT /rest/v2/caches/{cacheName}/x-site/backups/{siteName}/take-offline-configPUT /rest/v2/caches/{cacheName}/x-site/backups/{siteName}/take-offline-configCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果操作成功完成,服务会返回
204 (不内容)
2.1.35.10. 从接收站点取消状态传输 复制链接链接已复制到粘贴板!
如果两个备份位置之间的连接中断,您可以在接收推送的站点上取消状态传输。
从远程站点取消状态传输,并使用 ?action=cancel-receive-state 参数保留本地缓存的当前状态。
POST /rest/v2/caches/{cacheName}/x-site/backups/{siteName}?action=cancel-receive-state
POST /rest/v2/caches/{cacheName}/x-site/backups/{siteName}?action=cancel-receive-state
2.1.36. 滚动升级 复制链接链接已复制到粘贴板!
在 Data Grid 集群间执行缓存数据的滚动升级
2.1.36.1. 连接源集群 复制链接链接已复制到粘贴板!
使用以下方法将目标集群连接到源集群:
POST /rest/v2/caches/{cacheName}/rolling-upgrade/source-connection
POST /rest/v2/caches/{cacheName}/rolling-upgrade/source-connection
您必须以 JSON 格式提供 remote-store 定义作为正文:
JSON
几个元素是可选的,如 security,async-executor 和 connection-pool。配置必须包含缓存名称,raw-values 被设置为 false,以及源集群中单个端口的主机/IP。有关 remote-store 配置的详细信息,请参阅 XSD 架构。
如果操作成功完成,服务会返回 204 (非内容)。如果目标集群已连接到源集群,它会返回状态 304 (未修改)。
2.1.36.2. 获取源集群连接详情 复制链接链接已复制到粘贴板!
要获取缓存的 remote-store 定义,请使用 GET 请求:
GET /rest/v2/caches/{cacheName}/rolling-upgrade/source-connection
GET /rest/v2/caches/{cacheName}/rolling-upgrade/source-connection
如果缓存之前连接,它将以 JSON 格式返回关联 remote-store 的配置,其状态为 200 (OK),否则为 404 (Not Found)状态。
这不是集群范围的操作,它只在处理 REST 调用的节点中返回缓存的远程存储。
2.1.36.3. 检查缓存是否已连接 复制链接链接已复制到粘贴板!
要检查缓存是否已连接到远程集群,请使用 HEAD 请求:
HEAD /rest/v2/caches/{cacheName}/rolling-upgrade/source-connection
HEAD /rest/v2/caches/{cacheName}/rolling-upgrade/source-connection
如果为群集的所有节点返回 200 (OK)状态,则 cacheName 配置了单个远程存储,否则 404 (NOT_FOUND)。
2.1.36.4. 同步数据 复制链接链接已复制到粘贴板!
使用 POST 请求和 ?action=sync-data 参数将数据从源集群同步到目标集群:
POST /rest/v2/caches/{cacheName}?action=sync-data
POST /rest/v2/caches/{cacheName}?action=sync-data
当操作完成后,Data Grid 使用复制到目标集群的条目总数进行响应。
2.1.36.5. 断开源集群 复制链接链接已复制到粘贴板!
将数据同步到目标集群后,使用 DELETE 请求断开与源集群的连接:
DELETE /rest/v2/caches/{cacheName}/rolling-upgrade/source-connection
DELETE /rest/v2/caches/{cacheName}/rolling-upgrade/source-connection
如果操作成功完成,服务会返回 204 (不内容)它没有连接源,它会返回代码 304 (未修改)。