当前位置: 首页>>代码示例>>Java>>正文


Java CoreContainer.getZkController方法代码示例

本文整理汇总了Java中org.apache.solr.core.CoreContainer.getZkController方法的典型用法代码示例。如果您正苦于以下问题:Java CoreContainer.getZkController方法的具体用法?Java CoreContainer.getZkController怎么用?Java CoreContainer.getZkController使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.apache.solr.core.CoreContainer的用法示例。


在下文中一共展示了CoreContainer.getZkController方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: getAndPrepShardHandler

import org.apache.solr.core.CoreContainer; //导入方法依赖的package包/类
private ShardHandler getAndPrepShardHandler(SolrQueryRequest req, ResponseBuilder rb, ShardHandlerFactory shardHandlerFactory) {
  ShardHandler shardHandler = null;

  boolean isZkAware = false;
  CoreContainer cc = null;
  if (req.getCore() != null) {
    cc = req.getCore().getCoreContainer();
    isZkAware = cc.isZooKeeperAware();
  } 
  
  rb.isDistrib = req.getParams().getBool("distrib", isZkAware);
  if (!rb.isDistrib) {
    // for back compat, a shards param with URLs like localhost:8983/solr will mean that this
    // search is distributed.
    final String shards = req.getParams().get(ShardParams.SHARDS);
    rb.isDistrib = ((shards != null) && (shards.indexOf('/') > 0));
  }
  
  if (rb.isDistrib) {
    shardHandler = shardHandlerFactory.getShardHandler();
    shardHandler.prepDistributed(rb);
    if (!rb.isDistrib) {
      shardHandler = null; // request is not distributed after all and so the shard handler is not needed
    }
  }

  if(isZkAware) {
    ZkController zkController = cc.getZkController();
    NamedList<Object> headers = rb.rsp.getResponseHeader();
    if(headers != null) {
      headers.add("zkConnected", 
          zkController != null 
        ? !zkController.getZkClient().getConnectionManager().isLikelyExpired() 
        : false);
    }
    
  }

  return shardHandler;
}
 
开发者ID:sematext,项目名称:solr-researcher,代码行数:41,代码来源:ReSearcherHandler.java

示例2: RecoveryStrategy

import org.apache.solr.core.CoreContainer; //导入方法依赖的package包/类
public RecoveryStrategy(CoreContainer cc, CoreDescriptor cd, RecoveryListener recoveryListener) {
  this.cc = cc;
  this.coreName = cd.getName();
  this.recoveryListener = recoveryListener;
  setName("RecoveryThread");
  zkController = cc.getZkController();
  zkStateReader = zkController.getZkStateReader();
  baseUrl = zkController.getBaseUrl();
  coreZkNodeName = cd.getCloudDescriptor().getCoreNodeName();
}
 
开发者ID:europeana,项目名称:search,代码行数:11,代码来源:RecoveryStrategy.java

示例3: initialize

import org.apache.solr.core.CoreContainer; //导入方法依赖的package包/类
@Override
public CoreContainer initialize() {
  CoreContainer container = new CoreContainer(new SolrResourceLoader(SolrResourceLoader.locateSolrHome())) {
    {
      hostPort = System.getProperty("hostPort");
      hostContext = "solr";
      defaultCoreName = CoreContainer.DEFAULT_DEFAULT_CORE_NAME;
      initShardHandler(null);
      initZooKeeper(System.getProperty("zkHost"), 10000);
    }
  };
  LogWatcher<?> logging = new JulWatcher("test");
  logging.registerListener(new ListenerConfig(), container);
  container.setLogging(logging);
  
  CoreDescriptor dcore = new CoreDescriptor(container, coreName, solrConfig.getResourceLoader().getInstanceDir());
  dcore.setConfigName(solrConfig.getResourceName());
  dcore.setSchemaName(indexSchema.getResourceName());
  SolrCore core = new SolrCore(coreName, dataDirectory, solrConfig, indexSchema, dcore);
  container.register(coreName, core, false);

  // TODO: we should be exercising the *same* core container initialization code, not equivalent code!
  if (container.getZkController() == null && core.getUpdateHandler().getUpdateLog() != null) {
    // always kick off recovery if we are in standalone mode.
    core.getUpdateHandler().getUpdateLog().recoverFromLog();
  }
  return container;
}
 
开发者ID:pkarmstr,项目名称:NYBC,代码行数:29,代码来源:TestHarness.java

示例4: RecoveryStrategy

import org.apache.solr.core.CoreContainer; //导入方法依赖的package包/类
public RecoveryStrategy(CoreContainer cc, CoreDescriptor cd, RecoveryListener recoveryListener) {
  this.cc = cc;
  this.coreName = cd.getName();
  this.recoveryListener = recoveryListener;
  setName("RecoveryThread");
  zkController = cc.getZkController();
  zkStateReader = zkController.getZkStateReader();
  baseUrl = zkController.getBaseUrl();
  coreZkNodeName = zkController.getCoreNodeName(cd);
}
 
开发者ID:pkarmstr,项目名称:NYBC,代码行数:11,代码来源:RecoveryStrategy.java

示例5: doGet

import org.apache.solr.core.CoreContainer; //导入方法依赖的package包/类
@Override
public void doGet(HttpServletRequest request,
                  HttpServletResponse response)
    throws ServletException,IOException {
  // This attribute is set by the SolrDispatchFilter
  CoreContainer cores = (CoreContainer) request.getAttribute("org.apache.solr.CoreContainer");
  if (cores == null) {
    throw new ServletException("Missing request attribute org.apache.solr.CoreContainer.");
  }
  
  final SolrParams params;
  try {
    params = SolrRequestParsers.DEFAULT.parse(null, request.getServletPath(), request).getParams();
  } catch (Exception e) {
    int code=500;
    if (e instanceof SolrException) {
      code = Math.min(599, Math.max(100, ((SolrException)e).code()));
    }
    response.sendError(code, e.toString());
    return;
  }

  String path = params.get("path");
  String addr = params.get("addr");

  if (addr != null && addr.length() == 0) {
    addr = null;
  }

  String detailS = params.get("detail");
  boolean detail = detailS != null && detailS.equals("true");

  String dumpS = params.get("dump");
  boolean dump = dumpS != null && dumpS.equals("true");

  response.setCharacterEncoding("UTF-8");
  response.setContentType("application/json");

  Writer out = new FastWriter(new OutputStreamWriter(response.getOutputStream(), StandardCharsets.UTF_8));

  ZKPrinter printer = new ZKPrinter(response, out, cores.getZkController(), addr);
  printer.detail = detail;
  printer.dump = dump;

  try {
    printer.print(path);
  } finally {
    printer.close();
  }
  
  out.flush();
}
 
开发者ID:europeana,项目名称:search,代码行数:53,代码来源:ZookeeperInfoServlet.java

示例6: checkSharedFSFailoverReplaced

import org.apache.solr.core.CoreContainer; //导入方法依赖的package包/类
/**
 * See if coreNodeName has been taken over by another baseUrl and unload core
 * + throw exception if it has been.
 */
public static void checkSharedFSFailoverReplaced(CoreContainer cc, CoreDescriptor desc) {
  
  ZkController zkController = cc.getZkController();
  String thisCnn = zkController.getCoreNodeName(desc);
  String thisBaseUrl = zkController.getBaseUrl();
  
  log.debug("checkSharedFSFailoverReplaced running for coreNodeName={} baseUrl={}", thisCnn, thisBaseUrl);

  // if we see our core node name on a different base url, unload
  Map<String,Slice> slicesMap = zkController.getClusterState().getSlicesMap(desc.getCloudDescriptor().getCollectionName());
  
  if (slicesMap != null) {
    for (Slice slice : slicesMap.values()) {
      for (Replica replica : slice.getReplicas()) {
        
        String cnn = replica.getName();
        String baseUrl = replica.getStr(ZkStateReader.BASE_URL_PROP);
        log.debug("compare against coreNodeName={} baseUrl={}", cnn, baseUrl);
        
        if (thisCnn != null && thisCnn.equals(cnn)
            && !thisBaseUrl.equals(baseUrl)) {
          if (cc.getCoreNames().contains(desc.getName())) {
            cc.unload(desc.getName());
          }
          
          File instanceDir = new File(desc.getInstanceDir());
          try {
            FileUtils.deleteDirectory(instanceDir);
          } catch (IOException e) {
            SolrException.log(log, "Failed to delete instance dir for core:"
                + desc.getName() + " dir:" + instanceDir.getAbsolutePath());
          }
          log.error("", new SolrException(ErrorCode.SERVER_ERROR,
              "Will not load SolrCore " + desc.getName()
                  + " because it has been replaced due to failover."));
          throw new SolrException(ErrorCode.SERVER_ERROR,
              "Will not load SolrCore " + desc.getName()
                  + " because it has been replaced due to failover.");
        }
      }
    }
  }
}
 
开发者ID:europeana,项目名称:search,代码行数:48,代码来源:CloudUtil.java

示例7: testLeaderInitiatedRecoveryCRUD

import org.apache.solr.core.CoreContainer; //导入方法依赖的package包/类
/**
 * Tests handling of lir state znodes.
 */
protected void testLeaderInitiatedRecoveryCRUD() throws Exception {
  String testCollectionName = "c8n_crud_1x2";
  String shardId = "shard1";
  createCollection(testCollectionName, 1, 2, 1);
  cloudClient.setDefaultCollection(testCollectionName);

  Replica leader =
      cloudClient.getZkStateReader().getLeaderRetry(testCollectionName, shardId);
  JettySolrRunner leaderJetty = getJettyOnPort(getReplicaPort(leader));

  CoreContainer cores = ((SolrDispatchFilter)leaderJetty.getDispatchFilter().getFilter()).getCores();
  ZkController zkController = cores.getZkController();
  assertNotNull("ZkController is null", zkController);

  Replica notLeader =
      ensureAllReplicasAreActive(testCollectionName, shardId, 1, 2, maxWaitSecsToSeeAllActive).get(0);

  ZkCoreNodeProps replicaCoreNodeProps = new ZkCoreNodeProps(notLeader);
  String replicaUrl = replicaCoreNodeProps.getCoreUrl();

  assertTrue(!zkController.isReplicaInRecoveryHandling(replicaUrl));
  assertTrue(zkController.ensureReplicaInLeaderInitiatedRecovery(testCollectionName, shardId, replicaUrl, replicaCoreNodeProps, false));
  assertTrue(zkController.isReplicaInRecoveryHandling(replicaUrl));
  Map<String,Object> lirStateMap = zkController.getLeaderInitiatedRecoveryStateObject(testCollectionName, shardId, notLeader.getName());
  assertNotNull(lirStateMap);
  assertEquals(ZkStateReader.DOWN, lirStateMap.get("state"));
  zkController.removeReplicaFromLeaderInitiatedRecoveryHandling(replicaUrl);
  assertTrue(!zkController.isReplicaInRecoveryHandling(replicaUrl));

  // test old non-json format handling
  SolrZkClient zkClient = zkController.getZkClient();
  String znodePath = zkController.getLeaderInitiatedRecoveryZnodePath(testCollectionName, shardId, notLeader.getName());
  zkClient.setData(znodePath, "down".getBytes(StandardCharsets.UTF_8), true);
  lirStateMap = zkController.getLeaderInitiatedRecoveryStateObject(testCollectionName, shardId, notLeader.getName());
  assertNotNull(lirStateMap);
  assertEquals(ZkStateReader.DOWN, lirStateMap.get("state"));
  zkClient.delete(znodePath, -1, false);

  // try to clean up
  try {
    CollectionAdminRequest req = new CollectionAdminRequest.Delete();
    req.setCollectionName(testCollectionName);
    req.process(cloudClient);
  } catch (Exception e) {
    // don't fail the test
    log.warn("Could not delete collection {} after test completed", testCollectionName);
  }
}
 
开发者ID:europeana,项目名称:search,代码行数:52,代码来源:HttpPartitionTest.java

示例8: doGet

import org.apache.solr.core.CoreContainer; //导入方法依赖的package包/类
@Override
public void doGet(HttpServletRequest request,
                  HttpServletResponse response)
    throws ServletException,IOException {
  // This attribute is set by the SolrDispatchFilter
  CoreContainer cores = (CoreContainer) request.getAttribute("org.apache.solr.CoreContainer");
  if (cores == null) {
    throw new ServletException("Missing request attribute org.apache.solr.CoreContainer.");
  }
  
  final SolrParams params;
  try {
    params = SolrRequestParsers.DEFAULT.parse(null, request.getServletPath(), request).getParams();
  } catch (Exception e) {
    int code=500;
    if (e instanceof SolrException) {
      code = Math.min(599, Math.max(100, ((SolrException)e).code()));
    }
    response.sendError(code, e.toString());
    return;
  }

  String path = params.get("path");
  String addr = params.get("addr");

  if (addr != null && addr.length() == 0) {
    addr = null;
  }

  String detailS = params.get("detail");
  boolean detail = detailS != null && detailS.equals("true");

  String dumpS = params.get("dump");
  boolean dump = dumpS != null && dumpS.equals("true");

  response.setCharacterEncoding("UTF-8");
  response.setContentType("application/json");

  Writer out = new FastWriter(new OutputStreamWriter(response.getOutputStream(), IOUtils.CHARSET_UTF_8));

  ZKPrinter printer = new ZKPrinter(response, out, cores.getZkController(), addr);
  printer.detail = detail;
  printer.dump = dump;

  try {
    printer.print(path);
  } finally {
    printer.close();
  }
  
  out.flush();
}
 
开发者ID:pkarmstr,项目名称:NYBC,代码行数:53,代码来源:ZookeeperInfoServlet.java


注:本文中的org.apache.solr.core.CoreContainer.getZkController方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。