java 操作zookeeper 查看状态
package com.solrcloud;import java.util.Map;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.CloudSolrServer;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
import org.apache.solr.common.cloud.ClusterState;
import org.apache.solr.common.cloud.DocCollection;
import org.apache.solr.common.cloud.Replica;
import org.apache.solr.common.cloud.Slice;
import org.apache.solr.common.cloud.ZkStateReader;
public class ShardGet {
private static CloudSolrServer cloudSolrServer;
private static StringdefaultCollection = "docCollection";
public static void main(String[] args) {
ShardGet test = new ShardGet();
// TODO Auto-generated method stub
String zkHost = "zk1:2181,zk2:2181,zk3:2181";
final intzkClientTimeout = 20000;
final int zkConnectTimeout = 1000;
cloudSolrServer= getCloudSolrServer(zkHost);
System.out.println("The Cloud SolrServer Instance has benn created!");
cloudSolrServer.setDefaultCollection(defaultCollection);
cloudSolrServer.setZkClientTimeout(zkClientTimeout);
cloudSolrServer.setZkConnectTimeout(zkConnectTimeout);
cloudSolrServer.connect();
System.out.println("The cloud Server has been connected !!!!");
test.getZookeeperAllStatus(cloudSolrServer);
System.out.println("测试查询query!!!!");
test.search(cloudSolrServer, "title:习近平");
cloudSolrServer.shutdown();
}
privatestatic synchronized CloudSolrServer getCloudSolrServer(final String zkHost) {
if(cloudSolrServer == null) {
try {
cloudSolrServer = new CloudSolrServer(zkHost);
}catch(Exception e) {
e.printStackTrace();
}
}
return cloudSolrServer;
}
publicvoidgetZookeeperAllStatus(CloudSolrServer solrServer){
ZkStateReader zkStateReader = solrServer.getZkStateReader();
ClusterState clusterState= zkStateReader.getClusterState();
System.out.println(clusterState);
Replica shard1_leader = clusterState.getLeader(defaultCollection, "shard1");
Replica shard2_leader = clusterState.getLeader(defaultCollection, "shard2");
Replica shard3_leader = clusterState.getLeader(defaultCollection, "shard3");
Replica shard4_leader = clusterState.getLeader(defaultCollection, "shard4");
System.out.println("shard1_leader :"+shard1_leader);
System.out.println("shard2_leader :"+shard2_leader);
System.out.println("shard3_leader :"+shard3_leader);
System.out.println("shard4_leader :"+shard4_leader);
Slice slice1 = clusterState.getSlice(defaultCollection, "shard1");
Replica shard1_replica2 = clusterState.getReplica(defaultCollection, "");
Map<String, DocCollection>map = clusterState.getCollectionStates();
// Replica shard2_leader = clusterState.getLeader(defaultCollection, "shard2");
// Replica shard3_leader = clusterState.getLeader(defaultCollection, "shard3");
// Replica shard4_leader = clusterState.getLeader(defaultCollection, "shard4");
System.out.println("shard1状态 :"+slice1);
int version = clusterState.getZkClusterStateVersion();
System.out.println("ZkClusterStateVersion is"+version);
}
public void search(SolrServer solrServer, String String) {
SolrQuery query = new SolrQuery();
query.setQuery(String);
try {
QueryResponse response = solrServer.query(query);
SolrDocumentList docs = response.getResults();
System.out.println("文档个数:" + docs.getNumFound());
System.out.println("查询时间:" + response.getQTime());
for (SolrDocument doc : docs) {
String id = (String) doc.getFieldValue("id");
String ptime = (String) doc.getFieldValue("ptime");
System.out.println("id: " + id);
System.out.println("ptime: " + ptime);
System.out.println();
}
} catch (SolrServerException e) {
e.printStackTrace();
} catch(Exception e) {
System.out.println("Unknowned Exception!!!!");
e.printStackTrace();
}
}
}
运行后结果为:
页:
[1]