本文整理汇总了Java中org.apache.solr.common.cloud.DocCollection.getActiveSlices方法的典型用法代码示例。如果您正苦于以下问题:Java DocCollection.getActiveSlices方法的具体用法?Java DocCollection.getActiveSlices怎么用?Java DocCollection.getActiveSlices使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.apache.solr.common.cloud.DocCollection
的用法示例。
在下文中一共展示了DocCollection.getActiveSlices方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: buildUrlMap
import org.apache.solr.common.cloud.DocCollection; //导入方法依赖的package包/类
private Map<String,List<String>> buildUrlMap(DocCollection col) {
Map<String, List<String>> urlMap = new HashMap<>();
Collection<Slice> slices = col.getActiveSlices();
Iterator<Slice> sliceIterator = slices.iterator();
while (sliceIterator.hasNext()) {
Slice slice = sliceIterator.next();
String name = slice.getName();
List<String> urls = new ArrayList<>();
Replica leader = slice.getLeader();
if (leader == null) {
// take unoptimized general path - we cannot find a leader yet
return null;
}
ZkCoreNodeProps zkProps = new ZkCoreNodeProps(leader);
String url = zkProps.getCoreUrl();
urls.add(url);
Collection<Replica> replicas = slice.getReplicas();
Iterator<Replica> replicaIterator = replicas.iterator();
while (replicaIterator.hasNext()) {
Replica replica = replicaIterator.next();
if (!replica.getNodeName().equals(leader.getNodeName()) &&
!replica.getName().equals(leader.getName())) {
ZkCoreNodeProps zkProps1 = new ZkCoreNodeProps(replica);
String url1 = zkProps1.getCoreUrl();
urls.add(url1);
}
}
urlMap.put(name, urls);
}
return urlMap;
}
示例2: buildUrlMap
import org.apache.solr.common.cloud.DocCollection; //导入方法依赖的package包/类
private Map<String,List<String>> buildUrlMap(DocCollection col) {
Map<String, List<String>> urlMap = new HashMap<String, List<String>>();
Collection<Slice> slices = col.getActiveSlices();
Iterator<Slice> sliceIterator = slices.iterator();
while (sliceIterator.hasNext()) {
Slice slice = sliceIterator.next();
String name = slice.getName();
List<String> urls = new ArrayList<String>();
Replica leader = slice.getLeader();
if (leader == null) {
// take unoptimized general path - we cannot find a leader yet
return null;
}
ZkCoreNodeProps zkProps = new ZkCoreNodeProps(leader);
String url = zkProps.getBaseUrl() + "/" + col.getName();
urls.add(url);
Collection<Replica> replicas = slice.getReplicas();
Iterator<Replica> replicaIterator = replicas.iterator();
while (replicaIterator.hasNext()) {
Replica replica = replicaIterator.next();
if (!replica.getNodeName().equals(leader.getNodeName()) &&
!replica.getName().equals(leader.getName())) {
ZkCoreNodeProps zkProps1 = new ZkCoreNodeProps(replica);
String url1 = zkProps1.getBaseUrl() + "/" + col.getName();
urls.add(url1);
}
}
urlMap.put(name, urls);
}
return urlMap;
}
示例3: ensureAllReplicasAreActive
import org.apache.solr.common.cloud.DocCollection; //导入方法依赖的package包/类
protected static void ensureAllReplicasAreActive(String testCollectionName, int shards, int rf,
int maxWaitSecs) throws Exception {
long startMs = System.currentTimeMillis();
ZkStateReader zkr = cloudSolrClient.getZkStateReader();
zkr.forceUpdateCollection(testCollectionName); // force the state to be fresh
ClusterState cs = zkr.getClusterState();
DocCollection docCollection = cs.getCollection(testCollectionName);
Collection<Slice> slices = docCollection.getActiveSlices();
assertTrue(slices.size() == shards);
boolean allReplicasUp = false;
long waitMs = 0L;
long maxWaitMs = maxWaitSecs * 1000L;
Replica leader = null;
while (waitMs < maxWaitMs && !allReplicasUp) {
// refresh state every 2 secs
if (waitMs % 2000 == 0) {
log.info("Updating ClusterState");
cloudSolrClient.getZkStateReader().forceUpdateCollection(testCollectionName);
}
cs = cloudSolrClient.getZkStateReader().getClusterState();
assertNotNull(cs);
allReplicasUp = true; // assume true
for (Slice shard : docCollection.getActiveSlices()) {
String shardId = shard.getName();
assertNotNull("No Slice for " + shardId, shard);
Collection<Replica> replicas = shard.getReplicas();
assertTrue(replicas.size() == rf);
leader = shard.getLeader();
assertNotNull(leader);
log.info("Found " + replicas.size() + " replicas and leader on " +
leader.getNodeName() + " for " + shardId + " in " + testCollectionName);
// ensure all replicas are "active"
for (Replica replica : replicas) {
Replica.State replicaState = replica.getState();
if (!Replica.State.ACTIVE.equals(replicaState)) {
log.info("Replica " + replica.getName() + " for shard " + shardId + " is currently "
+ replicaState);
allReplicasUp = false;
}
}
}
if (!allReplicasUp) {
try {
Thread.sleep(500L);
} catch (Exception ignoreMe) {
}
waitMs += 500L;
}
} // end while
if (!allReplicasUp) {
fail("Didn't see all replicas for " + testCollectionName +
" come up within " + maxWaitMs + " ms! ClusterState: " + printClusterStateInfo(
testCollectionName));
}
long diffMs = (System.currentTimeMillis() - startMs);
log.info("Took " + diffMs + " ms to see all replicas become active for " + testCollectionName);
}