[关闭]
@liyuj 2017-12-06T22:53:18.000000Z 字数 28662 阅读 7142

Apache-Ignite-2.3.0-中文开发手册

12.平台和协议

12.1.摘要

Ignite为主要的语言和技术,以原生库的形式提供了一套API,包括Java,.NET和C++,还支持包括REST、Memcached以及Redis在内的多种协议。

12.2.REST API

Ignite提供了一个HTTP REST客户端,可以以REST的方式通过HTTP或者HTTPS协议与集群进行通信。REST API可以用于执行不同的操作,比如从/对缓存的读/写,执行任务,获取各种指标等等。

12.2.1.入门

要启用HTTP连接,确保在类路径中包含ignite-rest-http模块,在二进制发行版中,这意味着将libs\optional\ignite-rest-http拷贝到libs\ignite-rest-http中。
不需要显式地进行配置,连接器就会自动启动,然后监听8080端口,可以通过curl检测其是否工作正常。

  1. curl http://localhost:8080/ignite?cmd=version

12.2.2.API参考

在内部,Ignite使用Jetty来提供HTTP服务的功能,HTTP REST客户端可以使用ConnectorConfiguration进行配置。

12.2.2.1.返回值

HTTP REST请求返回一个JSON对象,每一个命令都有一个类似的结构,这个对象有如下的结构:

名字 类型 描述 示例
affinityNodeId string 关联节点ID 2bd7b049-3fa0-4c44-9a6d-b5c7a597ce37
error string 如果服务器无法处理请求,出现的错误的描述 每个命令单独指定
response jsonObject 包含命令执行结果的字段 每个命令单独指定
successStatus Integer 返回状态码:
成功:0
失败:1
授权失败:2
安全检查失败:3
0

12.2.2.2.log

log命令显示服务器的日志。
URL:

  1. http://host:port/ignite?cmd=log&from=10&to=100&path=/var/log/ignite.log

请求参数

名称 类型 可选 描述 示例
cmd string log,小写
from integer 开始的行号,如果传入了to参数,该参数为必须 0
path string 日志文件的路径,如果未提供会使用默认值 /log/cache_server.log
to integer 结束的行号,如果传入了from参数,该参数为必须 1000

返回值示例

  1. {
  2. "error": "",
  3. "response": ["[14:01:56,626][INFO ][test-runner][GridDiscoveryManager] Topology snapshot [ver=1, nodes=1, CPUs=8, heap=1.8GB]"],
  4. "successStatus": 0
  5. }
名称 类型 描述 示例
response string 日志 ["[14:01:56,626][INFO ][test-runner][GridDiscoveryManager] Topology snapshot [ver=1, nodes=1, CPUs=8, heap=1.8GB]"]

12.2.2.3.version

version命令显示当前Ignite的版本。
URL:

  1. http://host:port/ignite?cmd=version

请求参数

名称 类型 可选 描述 示例
cmd string version,小写

返回值示例

  1. {
  2. "error": "",
  3. "response": "1.0.0",
  4. "successStatus": 0
  5. }
名称 类型 描述 示例
response string Ignite版本 1.0.0

12.2.2.4.decr

decr命令减去然后获得给定原子性Long类型的当前值。
URL:

  1. http://host:port/ignite?cmd=decr&cacheName=partionedCache&key=decrKey&init=15&delta=10

请求参数

名称 类型 可选 描述 示例
cmd string decr,小写
cacheName string 缓存名称,如果未提供,会使用默认的缓存 partionedCache
key string 原子性Long类型的名称 counter
init long 初始值 15
delta long 减去的值 42

返回值示例

  1. {
  2. "affinityNodeId": "e05839d5-6648-43e7-a23b-78d7db9390d5",
  3. "error": "",
  4. "response": -42,
  5. "successStatus": 0
  6. }
名称 类型 描述 示例
response long 操作之后的值 -42

12.2.2.5.incr

incr命令增加然后获得给定原子性Long类型的当前值。
URL:

  1. http://host:port/ignite?cmd=incr&cacheName=partionedCache&key=incrKey&init=15&delta=10

请求参数

名称 类型 可选 描述 示例
cmd string incr,小写
cacheName string 缓存名称,如果未提供,会使用默认的缓存 partionedCache
key string 原子性Long类型的名称 counter
init long 初始值 15
delta long 增加的值 42

返回值示例

  1. {
  2. "affinityNodeId": "e05839d5-6648-43e7-a23b-78d7db9390d5",
  3. "error": "",
  4. "response": 42,
  5. "successStatus": 0
  6. }
名称 类型 描述 示例
response long 操作之后的值 42

12.2.2.6.cache

cache命令可以获得Ignite缓存的指标。
URL:

  1. http://host:port/ignite?cmd=cache&cacheName=partionedCache&destId=8daab5ea-af83-4d91-99b6-77ed2ca06647

请求参数

名称 类型 可选 描述 示例
cmd string cache,小写
cacheName string 缓存名称,如果未提供,会使用默认的缓存 partionedCache
destId string 要返回指标的节点Id 8daab5ea-af83-4d91-99b6-77ed2ca06647

返回值示例

  1. {
  2. "affinityNodeId": "",
  3. "error": "",
  4. "response": {
  5. "createTime": 1415179251551,
  6. "hits": 0,
  7. "misses": 0,
  8. "readTime": 1415179251551,
  9. "reads": 0,
  10. "writeTime": 1415179252198,
  11. "writes": 2
  12. },
  13. "successStatus": 0
  14. }
名称 类型 描述 示例
response jsonObject JSON对象包含了缓存的指标,比如创建时间,读计数等 {

"createTime": 1415179251551, "hits": 0, "misses": 0, "readTime":1415179251551, "reads": 0,"writeTime": 1415179252198, "writes": 2
}|

12.2.2.7.cas

cas命令在之前的值等于预期值时会在缓存中存储给定的键值对。
URL:

  1. http://host:port/ignite?cmd=cas&key=casKey&val2=casOldVal&val1=casNewVal&cacheName=partionedCache&destId=8daab5ea-af83-4d91-99b6-77ed2ca06647

请求参数

名称 类型 可选 描述 示例
cmd string cas,小写
cacheName string 缓存名称,如果未提供,会使用默认的缓存 partionedCache
key string 缓存内要保存的键值 name
val string 与给定键对应的值 Jack
val2 string 预期值 Bob
destId string 要返回指标的节点Id 8daab5ea-af83-4d91-99b6-77ed2ca06647

返回值示例

  1. {
  2. "affinityNodeId": "1bcbac4b-3517-43ee-98d0-874b103ecf30",
  3. "error": "",
  4. "response": true,
  5. "successStatus": 0
  6. }
名称 类型 描述 示例
response boolean 如果替换发生则为true,否则false true

12.2.2.8.prepend

prepend命令为给定的键关联的值增加一个前缀。
URL:

  1. http://host:port/ignite?cmd=prepend&key=prependKey&val=prefix_&cacheName=partionedCache&destId=8daab5ea-af83-4d91-99b6-77ed2ca06647

请求参数

名称 类型 可选 描述 示例
cmd string prepend,小写
cacheName string 缓存名称,如果未提供,会使用默认的缓存 partionedCache
key string 缓存内要保存的键值 name
val string 为当前值要增加的前缀 Name_
destId string 要返回指标的节点Id 8daab5ea-af83-4d91-99b6-77ed2ca06647

返回值示例

  1. {
  2. "affinityNodeId": "1bcbac4b-3517-43ee-98d0-874b103ecf30",
  3. "error": "",
  4. "response": true,
  5. "successStatus": 0
  6. }
名称 类型 描述 示例
response boolean 如果替换发生则为true,否则false true

12.2.2.9.append

append命令为给定的键关联的值增加一个后缀。
URL:

  1. http://host:port/ignite?cmd=append&key=appendKey&val=_suffix&cacheName=partionedCache&destId=8daab5ea-af83-4d91-99b6-77ed2ca06647

请求参数

名称 类型 可选 描述 示例
cmd string append,小写
cacheName string 缓存名称,如果未提供,会使用默认的缓存 partionedCache
key string 缓存内要保存的键值 name
val string 为当前值要增加的后缀 Jack
destId string 要返回指标的节点Id 8daab5ea-af83-4d91-99b6-77ed2ca06647

返回值示例

  1. {
  2. "affinityNodeId": "1bcbac4b-3517-43ee-98d0-874b103ecf30",
  3. "error": "",
  4. "response": true,
  5. "successStatus": 0
  6. }
名称 类型 描述 示例
response boolean 如果替换发生则为true,否则false true

12.2.2.10.rep

rep命令为给定的键存储一个新值。
URL:

  1. http://host:port/ignite?cmd=rep&key=repKey&val=newValue&cacheName=partionedCache&destId=8daab5ea-af83-4d91-99b6-77ed2ca06647

请求参数

名称 类型 可选 描述 示例
cmd string rep,小写
cacheName string 缓存名称,如果未提供,会使用默认的缓存 partionedCache
key string 缓存内要保存的键值 name
val string 与给定键关联的新值 Jack
destId string 要返回指标的节点Id 8daab5ea-af83-4d91-99b6-77ed2ca06647

返回值示例

  1. {
  2. "affinityNodeId": "1bcbac4b-3517-43ee-98d0-874b103ecf30",
  3. "error": "",
  4. "response": true,
  5. "successStatus": 0
  6. }
名称 类型 描述 示例
response boolean 如果替换发生则为true,否则false true

12.2.2.11.getrep

getrep命令为给定的键存储一个新值,然后返回原值。
URL:

  1. http://host:port/ignite?cmd=getrep&key=repKey&val=newValue&cacheName=partionedCache&destId=8daab5ea-af83-4d91-99b6-77ed2ca06647

请求参数

名称 类型 可选 描述 示例
cmd string getrep,小写
cacheName string 缓存名称,如果未提供,会使用默认的缓存 partionedCache
key string 缓存内要保存的键值 name
val string 与给定键关联的新值 Jack
destId string 要返回指标的节点Id 8daab5ea-af83-4d91-99b6-77ed2ca06647

返回值示例

  1. {
  2. "affinityNodeId": "1bcbac4b-3517-43ee-98d0-874b103ecf30",
  3. "error": "",
  4. "response": oldValue,
  5. "successStatus": 0
  6. }
名称 类型 描述 示例
response jsonObject 给定键的原值 {"name": "Bob"}

12.2.2.12.repval

repval命令在之前的值等于预期值时会替换给定键的值。
URL:

  1. http://host:port/ignite?cmd=repval&key=repKey&val=newValue&val2=oldVal&cacheName=partionedCache&destId=8daab5ea-af83-4d91-99b6-77ed2ca06647

请求参数

名称 类型 可选 描述 示例
cmd string repval,小写
cacheName string 缓存名称,如果未提供,会使用默认的缓存 partionedCache
key string 缓存内的键值 name
val string 与给定键对应的值 Jack
val2 string 预期值 oldValue
destId string 要返回指标的节点Id 8daab5ea-af83-4d91-99b6-77ed2ca06647

返回值示例

  1. {
  2. "affinityNodeId": "1bcbac4b-3517-43ee-98d0-874b103ecf30",
  3. "error": "",
  4. "response": true,
  5. "successStatus": 0
  6. }
名称 类型 描述 示例
response boolean 如果替换发生则为true,否则false true

12.2.2.13.rmvall

rmvall命令会从缓存中删除给定键的数据。
URL:

  1. http://host:port/ignite?cmd=rmvall&k1=rmKey1&k2=rmKey2&k3=rmKey3&cacheName=partionedCache&destId=8daab5ea-af83-4d91-99b6-77ed2ca06647

请求参数

名称 类型 可选 描述 示例
cmd string rmvall,小写
cacheName string 缓存名称,如果未提供,会使用默认的缓存 partionedCache
k1...kN string 要从缓存中删除的键 name
destId string 要返回指标的节点Id 8daab5ea-af83-4d91-99b6-77ed2ca06647

返回值示例

  1. {
  2. "affinityNodeId": "1bcbac4b-3517-43ee-98d0-874b103ecf30",
  3. "error": "",
  4. "response": true,
  5. "successStatus": 0
  6. }
名称 类型 描述 示例
response boolean 如果删除发生则为true,否则false true

12.2.2.14.rmvval

rmvval命令当当前值等于预期值时在缓存中删除给定键对应的映射。
URL:

  1. http://host:port/ignite?cmd=rmvval&key=rmvKey&val=rmvVal&cacheName=partionedCache&destId=8daab5ea-af83-4d91-99b6-77ed2ca06647

请求参数

名称 类型 可选 描述 示例
cmd string rmvval,小写
cacheName string 缓存名称,如果未提供,会使用默认的缓存 partionedCache
key string 缓存内要删除的键值 name
val string 与给定键关联的期望值 oldValue
destId string 要返回指标的节点Id 8daab5ea-af83-4d91-99b6-77ed2ca06647

返回值示例

  1. {
  2. "affinityNodeId": "1bcbac4b-3517-43ee-98d0-874b103ecf30",
  3. "error": "",
  4. "response": true,
  5. "successStatus": 0
  6. }
名称 类型 描述 示例
response boolean false,如果没有映射的键 true

12.2.2.15.rmv

rmv命令在缓存中删除给定键对应的映射。
URL:

  1. http://host:port/ignite?cmd=rmv&key=rmvKey&cacheName=partionedCache&destId=8daab5ea-af83-4d91-99b6-77ed2ca06647

请求参数

名称 类型 可选 描述 示例
cmd string rmv,小写
cacheName string 缓存名称,如果未提供,会使用默认的缓存 partionedCache
key string 缓存内要删除的键值 name
destId string 要返回指标的节点Id 8daab5ea-af83-4d91-99b6-77ed2ca06647

返回值示例

  1. {
  2. "affinityNodeId": "1bcbac4b-3517-43ee-98d0-874b103ecf30",
  3. "error": "",
  4. "response": true,
  5. "successStatus": 0
  6. }
名称 类型 描述 示例
response boolean true,如果删除发生,否则,false true

12.2.2.16.getrmv

getrmv命令在缓存中删除给定键的映射,然后返回原值。
URL:

  1. http://host:port/ignite?cmd=getrmv&cacheName=partionedCache&destId=8daab5ea-af83-4d91-99b6-77ed2ca06647

请求参数

名称 类型 可选 描述 示例
cmd string getrep,小写
cacheName string 缓存名称,如果未提供,会使用默认的缓存 partionedCache
key string 缓存内要删除的键值 name
destId string 要返回指标的节点Id 8daab5ea-af83-4d91-99b6-77ed2ca06647

返回值示例

  1. {
  2. "affinityNodeId": "1bcbac4b-3517-43ee-98d0-874b103ecf30",
  3. "error": "",
  4. "response": value,
  5. "successStatus": 0
  6. }
名称 类型 描述 示例
response jsonObject 给定键的原值 {"name": "Bob"}

12.2.2.17.add

add命令当缓存中不存在该映射时存储该映射。
URL:

  1. http://host:port/ignite?cmd=add&key=newKey&val=newValue&cacheName=partionedCache&destId=8daab5ea-af83-4d91-99b6-77ed2ca06647

请求参数

名称 类型 可选 描述 示例
cmd string add,小写
cacheName string 缓存名称,如果未提供,会使用默认的缓存 partionedCache
key string 缓存内要存储的键值 name
val string 与给定键关联的值 Jack
destId string 要返回指标的节点Id 8daab5ea-af83-4d91-99b6-77ed2ca06647

返回值示例

  1. {
  2. "affinityNodeId": "1bcbac4b-3517-43ee-98d0-874b103ecf30",
  3. "error": "",
  4. "response": true,
  5. "successStatus": 0
  6. }
名称 类型 描述 示例
response boolean true,如果成功存储,否则,false true

12.2.2.18.putall

putall命令会在缓存中存储给定的键值对。
URL:

  1. http://host:port/ignite?cmd=putall&k1=putKey1&k2=putKey2&k3=putKey3&v1=value1&v2=value2&v3=value3&cacheName=partionedCache&destId=8daab5ea-af83-4d91-99b6-77ed2ca06647

请求参数

名称 类型 可选 描述 示例
cmd string putall,小写
cacheName string 缓存名称,如果未提供,会使用默认的缓存 partionedCache
k1...kN string 要在缓存中保存的键 name
v1...vN string 与给定键关联的值 Jack
destId string 要返回指标的节点Id 8daab5ea-af83-4d91-99b6-77ed2ca06647

返回值示例

  1. {
  2. "affinityNodeId": "1bcbac4b-3517-43ee-98d0-874b103ecf30",
  3. "error": "",
  4. "response": true,
  5. "successStatus": 0
  6. }
名称 类型 描述 示例
response boolean 如果成功保存则为true,否则false true

12.2.2.19.put

put命令在缓存中存储该映射。
URL:

  1. http://host:port/ignite?cmd=put&key=newKey&val=newValue&cacheName=partionedCache&destId=8daab5ea-af83-4d91-99b6-77ed2ca06647

请求参数

名称 类型 可选 描述 示例
cmd string put,小写
cacheName string 缓存名称,如果未提供,会使用默认的缓存 partionedCache
key string 缓存内要存储的键值 name
val string 与给定键关联的值 Jack
destId string 要返回指标的节点Id 8daab5ea-af83-4d91-99b6-77ed2ca06647

返回值示例

  1. {
  2. "affinityNodeId": "1bcbac4b-3517-43ee-98d0-874b103ecf30",
  3. "error": "",
  4. "response": true,
  5. "successStatus": 0
  6. }
名称 类型 描述 示例
response boolean true,如果成功存储,否则,false true

12.2.2.20.getall

getall命令会从缓存中获取给定键的数据。
URL:

  1. http://host:port/ignite?cmd=getall&k1=getKey1&k2=getKey2&k3=getKey3&cacheName=partionedCache&destId=8daab5ea-af83-4d91-99b6-77ed2ca06647

请求参数

名称 类型 可选 描述 示例
cmd string rmvall,小写
cacheName string 缓存名称,如果未提供,会使用默认的缓存 partionedCache
k1...kN string 要从缓存中获取的值对应的键 key1, key2, ..., keyN
destId string 要返回指标的节点Id 8daab5ea-af83-4d91-99b6-77ed2ca06647

返回值示例

  1. {
  2. "affinityNodeId": "",
  3. "error": "",
  4. "response": {
  5. "key1": "value1",
  6. "key2": "value2"
  7. },
  8. "successStatus": 0
  9. }
名称 类型 描述 示例
response jsonObject 键值对映射 {"key1": "value1","key2": "value2"}

12.2.2.21.get

get命令在缓存中获取给定的键对应的值。
URL:

  1. http://host:port/ignite?cmd=get&key=getKey&cacheName=partionedCache&destId=8daab5ea-af83-4d91-99b6-77ed2ca06647

请求参数

名称 类型 可选 描述 示例
cmd string get,小写
cacheName string 缓存名称,如果未提供,会使用默认的缓存 partionedCache
key string 要返回的值对应的键 testKey
destId string 要返回指标的节点Id 8daab5ea-af83-4d91-99b6-77ed2ca06647

返回值示例

  1. {
  2. "affinityNodeId": "2bd7b049-3fa0-4c44-9a6d-b5c7a597ce37",
  3. "error": "",
  4. "response": "value",
  5. "successStatus": 0
  6. }
名称 类型 描述 示例
response jsonObject 给定键的值 {"name": "Bob"}

12.2.2.22.conkey

conkey命令在缓存中检测是否有给定键对应的条目。
URL:

  1. http://host:port/ignite?cmd=conkey&key=getKey&cacheName=partionedCache

请求参数

名称 类型 可选 描述 示例
cmd string conkey,小写
cacheName string 缓存名称,如果未提供,会使用默认的缓存 partionedCache
key string 在缓存中检测是否存在的键 testKey
destId string 要返回指标的节点Id 8daab5ea-af83-4d91-99b6-77ed2ca06647

返回值示例

  1. {
  2. "affinityNodeId": "2bd7b049-3fa0-4c44-9a6d-b5c7a597ce37",
  3. "error": "",
  4. "response": true,
  5. "successStatus": 0
  6. }
名称 类型 描述 示例
response boolean 存在给定键对应的映射则为true true

12.2.2.23.conkeys

conkeys命令在缓存中检测是否有给定键对应的条目。
URL:

  1. http://host:port/ignite?cmd=conkeys&k1=getKey1&k2=getKey2&k3=getKey3&cacheName=partionedCache

请求参数

名称 类型 可选 描述 示例
cmd string rmvall,小写
cacheName string 缓存名称,如果未提供,会使用默认的缓存 partionedCache
k1...kN string 在缓存中检测是否存在的键 key1, key2, ..., keyN
destId string 要返回指标的节点Id 8daab5ea-af83-4d91-99b6-77ed2ca06647

返回值示例

  1. {
  2. "affinityNodeId": "2bd7b049-3fa0-4c44-9a6d-b5c7a597ce37",
  3. "error": "",
  4. "response": true,
  5. "successStatus": 0
  6. }
名称 类型 描述 示例
response boolean 存在给定键对应的映射则为true true

12.2.2.24.getput

getput命令在缓存中存储给定的键值对,如果之前存在该映射的话则返回原值。
URL:

  1. http://host:port/ignite?cmd=getput&key=getKey&val=newVal&cacheName=partionedCache

请求参数

名称 类型 可选 描述 示例
cmd string getput,小写
cacheName string 缓存名称,如果未提供,会使用默认的缓存 partionedCache
key string 缓存内要存储的键值 name
val string 与给定键关联的值 Jack
destId string 要返回指标的节点Id 8daab5ea-af83-4d91-99b6-77ed2ca06647

返回值示例

  1. {
  2. "affinityNodeId": "2bd7b049-3fa0-4c44-9a6d-b5c7a597ce37",
  3. "error": "",
  4. "response": "value",
  5. "successStatus": 0
  6. }
名称 类型 描述 示例
response jsonObject 给定键的原值 {"name": "bob"}

12.2.2.25.putifabs

putifabs命令只有在缓存中存在该映射的话才会存储给定的键值对。
URL:

  1. http://host:port/ignite?cmd=putifabs&key=getKey&val=newVal&cacheName=partionedCache

请求参数

名称 类型 可选 描述 示例
cmd string putifabs,小写
cacheName string 缓存名称,如果未提供,会使用默认的缓存 partionedCache
key string 缓存内要存储的键 name
val string 与给定键关联的值 Jack
destId string 要返回指标的节点Id 8daab5ea-af83-4d91-99b6-77ed2ca06647

返回值示例

  1. {
  2. "affinityNodeId": "2bd7b049-3fa0-4c44-9a6d-b5c7a597ce37",
  3. "error": "",
  4. "response": true,
  5. "successStatus": 0
  6. }
名称 类型 描述 示例
response boolean 成功存储则为true true

12.2.2.26.getputifabs

getputifabs命令只有在缓存中不存在该映射时才会进行存储,否则会返回对应该键的原值。
URL:

  1. http://host:port/ignite?cmd=getputifabs&key=getKey&val=newVal&cacheName=partionedCache

请求参数

名称 类型 可选 描述 示例
cmd string getputifabs,小写
cacheName string 缓存名称,如果未提供,会使用默认的缓存 partionedCache
key string 缓存内要存储的键值 name
val string 与给定键关联的值 Jack
destId string 要返回指标的节点Id 8daab5ea-af83-4d91-99b6-77ed2ca06647

返回值示例

  1. {
  2. "affinityNodeId": "2bd7b049-3fa0-4c44-9a6d-b5c7a597ce37",
  3. "error": "",
  4. "response": "value",
  5. "successStatus": 0
  6. }
名称 类型 描述 示例
response jsonObject 给定键对应的原值 {"name": "bob"}

12.2.2.27.size

size命令返回指定缓存的总条目的数量。
URL:

  1. http://host:port/ignite?cmd=size&cacheName=partionedCache

请求参数

名称 类型 可选 描述 示例
cmd string size,小写
cacheName string 缓存名称,如果未提供,会使用默认的缓存 partionedCache

返回值示例

  1. {
  2. "affinityNodeId": "",
  3. "error": "",
  4. "response": 1,
  5. "successStatus": 0
  6. }
名称 类型 描述 示例
response number 给定缓存的总条目数量 5

12.2.2.28.getorcreate

getorcreate命令如果不存在的话会创建给定名字的缓存。
URL:

  1. http://host:port/ignite?cmd=getorcreate&cacheName=partionedCache

请求参数

名称 类型 可选 描述 示例
cmd string getorcreate,小写
cacheName string 缓存名称,如果未提供,会使用默认的缓存 partionedCache

返回值示例

  1. {
  2. "error": "",
  3. "response": null,
  4. "successStatus": 0
  5. }

12.2.2.29.destcache

destcache命令删除给定名字的缓存。
URL:

  1. http://host:port/ignite?cmd=destcache&cacheName=partionedCache

请求参数

名称 类型 可选 描述 示例
cmd string destcache,小写
cacheName string 缓存名称,如果未提供,会使用默认的缓存 partionedCache

返回值示例

  1. {
  2. "error": "",
  3. "response": null,
  4. "successStatus": 0
  5. }

12.2.2.30.node

node命令获取一个节点的信息。
URL:

  1. http://host:port/ignite?cmd=node&attr=true&mtr=true&id=c981d2a1-878b-4c67-96f6-70f93a4cd241

请求参数

名称 类型 可选 描述 示例
cmd string node,小写
mtr boolean 如果为true,返回值会包含指标信息 true
attr boolean 如果为true,返回值会包含属性信息 true
ip string 如果传递了id参数该参数是可选的。返回值包含了指定IP对应的节点信息 192.168.0.1
id string 如果传递了ip参数该参数为可选的。返回值包含了指定节点id对应的节点信息 8daab5ea-af83-4d91-99b6-77ed2ca06647

返回值示例

  1. {
  2. "error": "",
  3. "response": {
  4. "attributes": null,
  5. "caches": {},
  6. "consistentId": "127.0.0.1:47500",
  7. "defaultCacheMode": "REPLICATED",
  8. "metrics": null,
  9. "nodeId": "2d0d6510-6fed-4fa3-b813-20f83ac4a1a9",
  10. "replicaCount": 128,
  11. "tcpAddresses": ["127.0.0.1"],
  12. "tcpHostNames": [""],
  13. "tcpPort": 11211
  14. },
  15. "successStatus": 0
  16. }
名称 类型 描述 示例
response jsonObject 一个节点的信息 {"attributes": null,"caches": {},"consistentId": "127.0.0.1:47500","defaultCacheMode": "REPLICATED","metrics": null,"nodeId": "2d0d6510-6fed-4fa3-b813-20f83ac4a1a9","replicaCount": 128,"tcpAddresses": ["127.0.0.1"],"tcpHostNames": [""],"tcpPort": 11211}

12.2.2.31.top

top命令获取一个网络拓扑的信息。
URL:

  1. http://host:port/ignite?cmd=top&attr=true&mtr=true&id=c981d2a1-878b-4c67-96f6-70f93a4cd241

请求参数

名称 类型 可选 描述 示例
cmd string top,小写
mtr boolean 如果为true,返回值会包含指标信息 true
attr boolean 如果为true,返回值会包含属性信息 true
ip string 如果传递了id参数该参数是可选的。返回值包含了指定IP对应的节点信息 192.168.0.1
id string 如果传递了ip参数该参数为可选的。返回值包含了指定节点id对应的节点信息 8daab5ea-af83-4d91-99b6-77ed2ca06647

返回值示例

  1. {
  2. "error": "",
  3. "response": [
  4. {
  5. "attributes": {
  6. ...
  7. },
  8. "caches": [
  9. {
  10. name: "",
  11. mode: "PARTITIONED"
  12. },
  13. {
  14. name: "partionedCache",
  15. mode: "PARTITIONED",
  16. sqlSchema: "partionedCache"
  17. }
  18. ],
  19. "consistentId": "127.0.0.1:47500",
  20. "metrics": {
  21. ...
  22. },
  23. "nodeId": "96baebd6-dedc-4a68-84fd-f804ee1ed995",
  24. "replicaCount": 128,
  25. "tcpAddresses": ["127.0.0.1"],
  26. "tcpHostNames": [""],
  27. "tcpPort": 11211
  28. },
  29. {
  30. "attributes": {
  31. ...
  32. },
  33. "caches": [
  34. {
  35. name: "",
  36. mode: "REPLICATED"
  37. }
  38. ],
  39. "consistentId": "127.0.0.1:47501",
  40. "metrics": {
  41. ...
  42. },
  43. "nodeId": "2bd7b049-3fa0-4c44-9a6d-b5c7a597ce37",
  44. "replicaCount": 128,
  45. "tcpAddresses": ["127.0.0.1"],
  46. "tcpHostNames": [""],
  47. "tcpPort": 11212
  48. }
  49. ],
  50. "successStatus": 0
  51. }
名称 类型 描述 示例
response jsonObject 一个网络拓扑的信息 [{"attributes": {...},"caches": [{name: "",mode: "PARTITIONED"},{name: "partionedCache",mode: "PARTITIONED",sqlSchema: "partionedCache"}],"consistentId": "127.0.0.1:47500","REPLICATED","metrics": {...},"nodeId": "96baebd6-dedc-4a68-84fd-f804ee1ed995",..."tcpPort": 11211},{"attributes": {...},"caches": [{name: "",mode: "REPLICATED"}],"consistentId": "127.0.0.1:47501","metrics": {...},"nodeId": "2bd7b049-3fa0-4c44-9a6d-b5c7a597ce37",..."tcpPort": 11212}]

12.2.2.32.exe

exe命令在集群中执行给定的任务。
URL:

  1. http://host:port/ignite?cmd=exe&name=taskName&p1=param1&p2=param2&async=true

请求参数

名称 类型 可选 描述 示例
cmd string exe,小写
name string 要执行的任务名 summ
p1...pN string 任务执行的参数 arg1...argN
async boolean 任务异步执行的标志 true

返回值示例

  1. {
  2. "error": "",
  3. "response": {
  4. "error": "",
  5. "finished": true,
  6. "id": "~ee2d1688-2605-4613-8a57-6615a8cbcd1b",
  7. "result": 4
  8. },
  9. "successStatus": 0
  10. }
名称 类型 描述 示例
response jsonObject JSON对象,包含了与错误有关的信息,任务的唯一标识,计算的结果和状态 {"error": "","finished": true,"id":"~ee2d1688-2605-4613-8a57-6615a8cbcd1b","result": 4}

12.2.2.33.res

res命令获取指定任务的计算结果。
URL:

  1. http://host:port/ignite?cmd=res&id=8daab5ea-af83-4d91-99b6-77ed2ca06647

请求参数

名称 类型 可选 描述 示例
cmd string res,小写
id string 要返回结果的任务id 69ad0c48941-4689aae0-6b0e-4d52-8758-ce8fe26f497d~4689aae0-6b0e-4d52-8758-ce8fe26f497d

返回值示例

  1. {
  2. "error": "",
  3. "response": {
  4. "error": "",
  5. "finished": true,
  6. "id": "69ad0c48941-4689aae0-6b0e-4d52-8758-ce8fe26f497d~4689aae0-6b0e-4d52-8758-ce8fe26f497d",
  7. "result": 4
  8. },
  9. "successStatus": 0
  10. }
名称 类型 描述 示例
response jsonObject JSON对象,包含了与错误有关的信息,任务的唯一标识,计算的结果和状态 {"error": "","finished": true,"id":"~ee2d1688-2605-4613-8a57-6615a8cbcd1b","result": 4}

12.2.2.34.qryexe

qryexe命令在缓存中执行指定的查询。
URL:

  1. http://host:port/ignite?cmd=qryexe&type=Person&pageSize=10&cacheName=Person&arg1=1000&arg2=2000qry=salary+%3E+%3F+and+salary+%3C%3D+%3F

请求参数

名称 类型 可选 描述 示例
cmd string qryexe,小写
type string 要查询的类型 String
pageSize number 查询的每页大小 3
cacheName string 缓存名称,如果未提供则使用默认的缓存 testCache
arg1...argN string 查询的参数 1000,2000
qry string 编码后的sql salary+%3E+%3F+and+salary+%3C%3D+%3F

返回值示例

  1. {
  2. "error":"",
  3. "response":{
  4. "fieldsMetadata":[],
  5. "items":[
  6. {"key":3,"value":{"name":"Jane","id":3,"salary":2000}},
  7. {"key":0,"value":{"name":"John","id":0,"salary":2000}}],
  8. "last":true,
  9. "queryId":0},
  10. "successStatus":0
  11. }
名称 类型 描述 示例
response jsonObject JSON对象,包含了查询的结果集,最后页的标识以及查询的id {"fieldsMetadata":[],"items":[{"key":3,"value":{"name":"Jane","id":3,salary":2000}},{"key":0,"value":{"name":"John","id":0,"salary":2000}}],"last":true,"queryId":0}

12.2.2.35.qryfldexe

qryfldexe命令在缓存中执行指定的有字段的查询。
URL:

  1. http://host:port/ignite?cmd=qryfldexe&pageSize=10&cacheName=Person&qry=select+firstName%2C+lastName+from+Person

请求参数

名称 类型 可选 描述 示例
cmd string qryfldexe,小写
pageSize number 查询的每页大小 3
cacheName string 缓存名称,如果未提供则使用默认的缓存 testCache
arg1...argN string 查询的参数 1000,2000
qry string 编码后的sql select+firstName%2C+lastName+from+Person

返回值示例

  1. {
  2. "error":"",
  3. "response":{
  4. "fieldsMetadata":[{"fieldName":"FIRSTNAME", "fieldTypeName":"java.lang.String", "schemaName":"person", "typeName":"PERSON"},{"fieldName":"LASTNAME","fieldTypeName":"java.lang.String","schemaName":"person","typeName":"PERSON"}],
  5. "items":[["Jane","Doe"],["John","Doe"]],
  6. "last":true,
  7. "queryId":0
  8. },
  9. "successStatus":0}
名称 类型 描述 示例
response jsonObject JSON对象,包含了查询的结果集,字段查询的元数据,最后页的标识以及查询的id {"fieldsMetadata":[{"fieldName":"FIRSTNAME","fieldTypeName":"java.lang.String","schemaName":"person","typeName":"PERSON"},...],"items":[["Jane","Doe"],["John","Doe"]],"last":true,"queryId":0}

12.2.2.36.qryfetch

qryfetch命令获取指定查询的下一页数据。
URL:

  1. http://host:port/ignite?cmd=qryfetch&pageSize=10&qryId=5

请求参数

名称 类型 可选 描述 示例
cmd string qryfetch,小写
pageSize number 查询的每页大小 3
qryId number qryexe,qryfldexe,qryfetch命令执行返回的查询id 0

返回值示例

  1. {
  2. "error":"",
  3. "response":{
  4. "fieldsMetadata":[],
  5. "items":[["Jane","Doe"],["John","Doe"]],
  6. "last":true,
  7. "queryId":0
  8. },
  9. "successStatus":0}
名称 类型 描述 示例
response jsonObject JSON对象,包含了查询的结果集,最后页的标识以及查询的id {"fieldsMetadata":[],"items":[["Jane","Doe"],["John","Doe"]],"last":true,"queryId":0}

12.2.2.37.qrycls

qrycls命令关闭查询占用的资源。
URL:

  1. http://host:port/ignite?cmd=qrycls&qryId=5

请求参数

名称 类型 可选 描述 示例
cmd string qrycls,小写
qryId number qryexe,qryfldexe,qryfetch命令执行返回的查询id 0

返回值示例

  1. {
  2. "error":"",
  3. "response":true,
  4. "successStatus":0
  5. }
名称 类型 描述 示例
response boolean 如果成功关闭则为true true

12.2.2.38.metadata

metadata命令返回指定缓存的元数据。
URL:

  1. http://host:port/ignite?cmd=metadata&cacheName=partionedCache

请求参数

名称 类型 可选 描述 示例
cmd string metadata,小写
cacheName string 缓存名称,如果未提供,会使用默认的缓存 partionedCache

返回值示例

  1. {
  2. "error": "",
  3. "response": {
  4. "cacheName": "partionedCache",
  5. "types": [
  6. "Person"
  7. ],
  8. "keyClasses": {
  9. "Person": "java.lang.Integer"
  10. },
  11. "valClasses": {
  12. "Person": "org.apache.ignite.Person"
  13. },
  14. "fields": {
  15. "Person": {
  16. "_KEY": "java.lang.Integer",
  17. "_VAL": "org.apache.ignite.Person",
  18. "ID": "java.lang.Integer",
  19. "FIRSTNAME": "java.lang.String",
  20. "LASTNAME": "java.lang.String",
  21. "SALARY": "double"
  22. }
  23. },
  24. "indexes": {
  25. "Person": [
  26. {
  27. "name": "ID_IDX",
  28. "fields": [
  29. "id"
  30. ],
  31. "descendings": [],
  32. "unique": false
  33. },
  34. {
  35. "name": "SALARY_IDX",
  36. "fields": [
  37. "salary"
  38. ],
  39. "descendings": [],
  40. "unique": false
  41. }
  42. ]
  43. }
  44. },
  45. "sessionToken": "",
  46. "successStatus": 0
  47. }
名称 类型 描述 示例
response jsonObject 给定缓存的元数据 {"cacheName": "partionedCache","types": ["Person"],"keyClasses": {"Person":"java.lang.Integer"},"valClasses": {"Person":"org.apache.ignite.Person"},"fields": {"Person": {"_KEY":"java.lang.Integer","_VAL": "org.apache.ignite.Person","ID":"java.lang.Integer","FIRSTNAME":"java.lang.String","LASTNAME": "java.lang.String","SALARY": "double"}},"indexes": {"Person": [{"name": "ID_IDX","fields": ["id"],"descendings": [],"unique": false},{"name": "SALARY_IDX","fields": ["salary"],"descendings": [],"unique": false}]}}

12.2.2.39.qryscanexe

qryscanexe命令在缓存中执行SQL扫描查询。
URL:

  1. http://host:port/ignite?cmd=qryscanexe&pageSize=10&cacheName=Person&className=org.apache.ignite.schema.Person

请求参数

名称 类型 可选 描述 示例
cmd string qryscanexe,小写
pageSize number 查询的每页大小 3
cacheName string 缓存名称,如果未提供,会使用默认的缓存 testCache
className string 扫描查询的类名 org.apache.ignite.schema.Person

返回值示例

  1. {
  2. "error": "",
  3. "response": {
  4. "fieldsMetadata": [
  5. {
  6. "fieldName": "key",
  7. "fieldTypeName": "",
  8. "schemaName": "",
  9. "typeName": ""
  10. },
  11. {
  12. "fieldName": "value",
  13. "fieldTypeName": "",
  14. "schemaName": "",
  15. "typeName": ""
  16. }
  17. ],
  18. "items": [
  19. {
  20. "key": 1,
  21. "value": {
  22. "firstName": "Jane",
  23. "id": 1,
  24. "lastName": "Doe",
  25. "salary": 1000
  26. }
  27. },
  28. {
  29. "key": 3,
  30. "value": {
  31. "firstName": "Jane",
  32. "id": 3,
  33. "lastName": "Smith",
  34. "salary": 2000
  35. }
  36. }
  37. ],
  38. "last": true,
  39. "queryId": 0
  40. },
  41. "successStatus": 0
  42. }
名称 类型 描述 示例
response jsonObject JSON对象,包含了扫描查询的结果集,字段查询的元数据,最后页的标识以及查询的id {"fieldsMetadata":[{"fieldName":"key","fieldTypeName":"", "schemaName":"","typeName":""},{"fieldName":"value","fieldTypeName":"","schemaName":"","typeName":""}],"items":[{"key":1,"value":{"firstName":"Jane","id":1,"lastName":"Doe","salary":1000}},{"key":3,"value":{"firstName":"Jane","id":3,"lastName":"Smith","salary":2000}}],"last":true,"queryId":0}

12.2.3.常规配置

参数名 描述 可选 默认值
setSecretKey(String) 定义用于客户端认证的密钥,如果进行了设定,客户端请求必须包含HTTP头X-Signature,值为:[1]:[2],这里[1]为毫秒值的时间戳,[2]为密钥的Base64格式的SHA1哈希值。 null
setPortRange(int) Jetty服务的端口范围,如果在Jetty配置文件中或者IGNITE_JETTY_PORT系统属性中配置的端口已被占用,Ignite会将该端口加1然后再做一次绑定直到设定的范围上限。 100
setJettyPath(String) Jetty配置文件的路径,要么是绝对路径,要么是相对于IGNITE_HOME,如果未指定,Ignite会用简单的HTTP连接器启动Jetty服务,这个连接器会分别使用IGNITE_JETTY_HOSTIGNITE_JETTY_PORT系统参数作为主机和端口,如果IGNITE_JETTY_HOST未设定,会使用localhost,如果IGNITE_JETTY_PORT未设定,默认会使用8080。 null
setMessageInterceptor(ConnectorMessageInterceptor) 转换通过REST协议进行交换的所有对象的拦截器。比如在客户端使用自定义的序列化,那么可以写一个拦截器来将从客户端收到的二进制数据转换为Java对象,然后就可以直接访问。 null

12.2.4.Jetty XML配置示例

配置文件的路径需要通过上面描述的ConnectorConfiguration.setJettyPath(String)进行设定。

  1. <?xml version="1.0"?>
  2. <!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
  3. <Configure id="Server" class="org.eclipse.jetty.server.Server">
  4. <Arg name="threadPool">
  5. <!-- Default queued blocking thread pool -->
  6. <New class="org.eclipse.jetty.util.thread.QueuedThreadPool">
  7. <Set name="minThreads">20</Set>
  8. <Set name="maxThreads">200</Set>
  9. </New>
  10. </Arg>
  11. <New id="httpCfg" class="org.eclipse.jetty.server.HttpConfiguration">
  12. <Set name="secureScheme">https</Set>
  13. <Set name="securePort">8443</Set>
  14. <Set name="sendServerVersion">true</Set>
  15. <Set name="sendDateHeader">true</Set>
  16. </New>
  17. <Call name="addConnector">
  18. <Arg>
  19. <New class="org.eclipse.jetty.server.ServerConnector">
  20. <Arg name="server"><Ref refid="Server"/></Arg>
  21. <Arg name="factories">
  22. <Array type="org.eclipse.jetty.server.ConnectionFactory">
  23. <Item>
  24. <New class="org.eclipse.jetty.server.HttpConnectionFactory">
  25. <Ref refid="httpCfg"/>
  26. </New>
  27. </Item>
  28. </Array>
  29. </Arg>
  30. <Set name="host">
  31. <SystemProperty name="IGNITE_JETTY_HOST" default="localhost"/>
  32. </Set>
  33. <Set name="port">
  34. <SystemProperty name="IGNITE_JETTY_PORT" default="8080"/>
  35. </Set>
  36. <Set name="idleTimeout">30000</Set>
  37. <Set name="reuseAddress">true</Set>
  38. </New>
  39. </Arg>
  40. </Call>
  41. <Set name="handler">
  42. <New id="Handlers" class="org.eclipse.jetty.server.handler.HandlerCollection">
  43. <Set name="handlers">
  44. <Array type="org.eclipse.jetty.server.Handler">
  45. <Item>
  46. <New id="Contexts" class="org.eclipse.jetty.server.handler.ContextHandlerCollection"/>
  47. </Item>
  48. </Array>
  49. </Set>
  50. </New>
  51. </Set>
  52. <Set name="stopAtShutdown">false</Set>
  53. </Configure>

12.3.Memcached

Ignite支持Memcached协议,可以通过任何Memcached兼容客户端从Ignite缓存中存储和获取分布化的数据。

当前,Ignite只支持Memcached的二进制协议。

可以通过如下语言的Memcached客户端连接到Ignite:

12.3.1.PHP

要使用PHP客户端通过Memcached连接到Ignite,首先要下载Ignite,然后:

  1. bin/ignite.sh examples/config/example-cache.xml
  1. // Create client instance.
  2. $client = new Memcached();
  3. // Set localhost and port (set to correct values).
  4. $client->addServer("localhost", 11211);
  5. // Force client to use binary protocol.
  6. $client->setOption(Memcached::OPT_BINARY_PROTOCOL, true);
  7. // Put entry to cache.
  8. if ($client->add("key", "val"))
  9. echo "Successfully put entry in cache.\n";
  10. // Check entry value.
  11. echo("Value for 'key': " . $client->get("key") . "\n");

12.3.2.Java

要使用Java客户端通过Memcached连接到Ignite,首先要下载Ignite,然后:

  1. bin/ignite.sh examples/config/example-cache.xml
  1. MemcachedClient client = null;
  2. try {
  3. client = new MemcachedClient(new BinaryConnectionFactory(),
  4. AddrUtil.getAddresses("localhost:11211"));
  5. } catch (IOException e) {
  6. e.printStackTrace();
  7. }
  8. client.set("key", 0, "val");
  9. System.out.println("Value for 'key': " + client.get("key"));

12.3.3.Python

要使用Python客户端通过Memcached连接到Ignite,首先要下载Ignite,然后:

  1. bin/ignite.sh examples/config/example-cache.xml
  1. import pylibmc
  2. client = memcache.Client(["127.0.0.1:11211", binary=True])
  3. client.set("key", "val")
  4. print "Value for 'key': %s" %
  5. client.get("key")

12.3.4.Ruby

要使用Ruby客户端通过Memcached连接到Ignite,首先要下载Ignite,然后:

  1. bin/ignite.sh examples/config/example-cache.xml
  1. require 'dalli'
  2. options = { :namespace => "app_v1", :compress => true }
  3. client = Dalli::Client.new('localhost:11211', options)
  4. client.set('key', 'value')
  5. value = client.get('key')

12.4.Redis

Ignite实现了对Redis的部分兼容,可以使用任何Redis兼容客户端在缓存中存储以及获取分布化的数据。
Ignite客户端支持如下的命令:
连接

字符串

服务器

集群节点通过监听特定的端口来接收Redis请求,每个Ignite节点默认都会通过监听[host]:11211来接收请求,通过ConnectorConfiguration可以覆写主机和端口:

  1. <bean class="org.apache.ignite.configuration.IgniteConfiguration">
  2. ...
  3. <property name="connectorConfiguration">
  4. <bean class="org.apache.ignite.configuration.ConnectorConfiguration">
  5. <property name="host" value="localhost"/>
  6. <property name="port" value="6379"/>
  7. </bean>
  8. </property>
  9. </bean>

配置默认缓存
需要配置一个默认的redis-ignite-internal-cache-0缓存,用于默认的Redis数据库,当切换到SELECT命令时也可以用做其他数据库的模板。

可以使用自己喜欢的Redis客户端接入Ignite,下面是是用几种语言的简单示例:

12.4.1.Java

要使用Redis的java客户端接入Ignite,需要先配置并启动一个Ignite集群。
要接入使用6379端口的Ignite,以Jedis为例:

  1. JedisPoolConfig jedisPoolCfg = new JedisPoolConfig();
  2. // your pool configurations.
  3. JedisPool pool = new JedisPool(jedisPoolCfg, "localhost", 6379, 10000);
  4. try (Jedis jedis = pool.getResource()) {
  5. jedis.set("key1", "1");
  6. System.out.println("Value for 'key1': " + jedis.get("key1"));
  7. }
  8. pool.destroy();

12.4.2.Python

要使用Redis的Python客户端接入Ignite,需要先配置并启动一个Ignite集群。
要接入使用6379端口的Ignite,以redis-py为例:

  1. >>> import redis
  2. >>> r = redis.StrictRedis(host='localhost', port=6379, db=0)
  3. >>> r.set('k1', 1)
  4. True
  5. >>> r.get('k1')
  6. '1'

12.4.3.PHP

要使用Redis的PHP客户端接入Ignite,需要先配置并启动一个Ignite集群。
要接入使用6379端口的Ignite,以predis为例:

  1. // Load the library.
  2. require 'predis/autoload.php';
  3. Predis\Autoloader::register();
  4. // Connect.
  5. try {
  6. $redis = new Predis\Client();
  7. echo ">>> Successfully connected to Redis. \n";
  8. // Put entry to cache.
  9. if ($redis->set('k1', '1'))
  10. echo ">>> Successfully put entry in cache. \n";
  11. // Check entry value.
  12. echo(">>> Value for 'k1': " . $redis->get('k1') . "\n");
  13. }
  14. catch (Exception $e) {
  15. echo "Couldn't connected to Redis";
  16. echo $e->getMessage();
  17. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注