仅考虑Solr服务器的HTTP URL,我必须检查服务器将数据存储在分片中的所有IP地址和端口,然后返回任何已关闭且无法运行的IP服务器。
我必须通过在Eclipse中编写Java代码来实现这一点。我找到了一个可以查询Solr数据库的Java API SolrJ,但我不知道如何获取所有分片及其IP地址。任何代码或过程都会有很大帮助。
答案 0 :(得分:0)
您可以在SolrJ中使用Collections API调用来请求群集状态,这也意味着实时节点等。
可以这样做:
final SolrClient client = getSolrClient();
final SolrRequest request = new CollectionAdminRequest.ClusterStatus();
final NamedList<Object> response = client.request(request);
final NamedList<Object> cluster = (NamedList<Object>) response.get("cluster");
final List<String> liveNodes = (List<String>) cluster.get("live_nodes");
print("Found " + liveNodes.size() + " live nodes");
有关它的更多信息 - https://lucene.apache.org/solr/guide/7_3/using-solrj.html#other-apis