首页 > 解决方案 > Apache 点燃 REST API

问题描述

我正在使用 Apache Ignite 2.8.0。我开发了用于监控 Ignite 性能的小型仪表板。现在我的问题是找到服务器的数量。首先我找到了节点的总数(在节点变量中),然后

    total_servers = 0
    port = 8080

    for j in range(0,node + 1):   
      if(persistence == True):
        url_cache = "http://localhost:" + str(port) + "/ignite?cmd=top&sessionToken=" +sessionToken

      else:
        url_cache = "http://localhost:" + str(port) + "/ignite?cmd=top"            
      try:
                    print(j)
                    try:
                        res = requests.get(url = url_cache)
                        print(res.status_code)
                        if(res.status_code == 200):
                             total_servers = total_servers + 1
                    except:
                        pass
      except:
             pass

      port = port + 1  

但这需要很长时间,我不希望那样。是否有任何简单的方法可以通过使用 REST API http 请求来查找在 Apache Ignite 中运行的服务器数量?

标签: cachingigniterest

解决方案


您可以从 REST运行 SQL 命令 SELECT * FROM SYS.NODES;来确定:

~/Downloads/apache-ignite-2.8.1-bin% wget -q -O- http://localhost:8080/ignite\?cmd=qryfldexe\&pageSize\=10\&cacheName\=default\&qry=select\ \*\ from\ sys.nodes | jq .response.items
[
  [
    "3304155a-bc83-402f-a884-59d39f074d3a",
    "0:0:0:0:0:0:0:1%lo,127.0.0.1,172.17.0.1,192.168.1.7:47500",
    "2.8.1#20200521-sha1:86422096",
    false,
    false,
    1,
    "[0:0:0:0:0:0:0:1%lo, 127.0.0.1, 172.17.0.1, 192.168.1.7]",
    "[192.168.1.7, 172.17.0.1]",
    true
  ]
]

default(假设您有为 API命名的缓存)


推荐阅读