gdx 发表于 2015-11-21 15:04:43

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, &quot;shard2&quot;);
//      Replica shard3_leader = clusterState.getLeader(defaultCollection, &quot;shard3&quot;);
//      Replica shard4_leader = clusterState.getLeader(defaultCollection, &quot;shard4&quot;);
System.out.println(&quot;shard1状态 :&quot;+slice1);
int version = clusterState.getZkClusterStateVersion();
System.out.println(&quot;ZkClusterStateVersion is&quot;+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(&quot;文档个数:&quot; + docs.getNumFound());
System.out.println(&quot;查询时间:&quot; + response.getQTime());
for (SolrDocument doc : docs) {
String id = (String) doc.getFieldValue(&quot;id&quot;);
String ptime = (String) doc.getFieldValue(&quot;ptime&quot;);
System.out.println(&quot;id: &quot; + id);
System.out.println(&quot;ptime: &quot; + ptime);
System.out.println();
}
} catch (SolrServerException e) {
e.printStackTrace();
} catch(Exception e) {
System.out.println(&quot;Unknowned Exception!!!!&quot;);
e.printStackTrace();
}
}

}
  运行后结果为:
  
页: [1]
查看完整版本: java 操作zookeeper 查看状态