【发布时间】:2019-08-17 17:17:26
【问题描述】:
Solr 有一个管理 UI,我们可以在其中检查部署到 Solr Cloud 的每个集合。例如,我可以看到集合中的切片/分片向上或未在下面的 URL 中提及。
出于安全原因,我们的生产环境不提供对此管理 UI 的访问权限。我需要提供一个 API 来获取每个集合的状态,以及它的分片和每个分片的副本。我正在使用 Solr API 来做到这一点
http://lucene.apache.org/solr/4_7_2/solr-solrj/index.html
CloudSolrServer server = new CloudSolrServer(<zk quorum>);
ZkStateReader reader = server.getZkStateReader();
Collection<Slice> slices = reader.getClusterState().getSlices(collection);
Iterator<Slice> iter = slices.iterator();
while (iter.hasNext()) {
Slice slice = iter.next();
System.out.println(slice.getName());
System.out.println(slice.getState());
}
上面的代码总是返回 Active 作为分片的状态,即使它的副本也在 UI 中显示出来。我假设这仅返回分片的状态,而不是分片的领导者或副本的状态。
如何通过 Solr API 获取副本状态?有没有这方面的API? Solr Admin UI 使用什么 API 来获取分片的副本/领导者状态?
谢谢
【问题讨论】: