zoukankan      html  css  js  c++  java
  • SolrCloud-4.10.2源代码启动流程梳理

    SolrCloud-4.10.2源代码

    web.xml中filter配置 SolrDispatchFilter

    <filter-name>SolrRequestFilter</filter-name>
    <filter-class>org.apache.solr.servlet.SolrDispatchFilter</filter-class>
    

    SolrRequestFilter继承自Filter,实例化的时候对调用init()方法

    this.cores = createCoreContainer();
    

    关键代码

    SolrDispatchFilter.execute()
    handler = core.getRequestHandler( path )
    

    solrconfig.xml配置的Handler,这里有些handler是不能配置的 比如admin

    cat solrconfig.xml |grep 'name="/'
    <requestHandler name="/select" class="solr.SearchHandler">
    <requestHandler name="/query" class="solr.SearchHandler">
    <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">  
    <requestHandler name="/get" class="solr.RealTimeGetHandler">
    <requestHandler name="/browse" class="solr.SearchHandler">
    <requestHandler name="/update" class="solr.UpdateRequestHandler">
    <requestHandler name="/update/json" class="solr.UpdateRequestHandler">
    <requestHandler name="/update/csv" class="solr.UpdateRequestHandler">
    <requestHandler name="/update/extract" 
    <requestHandler name="/analysis/field" 
    <requestHandler name="/analysis/document" 
    <requestHandler name="/admin/" 
    <requestHandler name="/admin/luke"       class="solr.admin.LukeRequestHandler" />
    <requestHandler name="/admin/system"     class="solr.admin.SystemInfoHandler" />
    <requestHandler name="/admin/plugins"    class="solr.admin.PluginInfoHandler" />
    <requestHandler name="/admin/threads"    class="solr.admin.ThreadDumpHandler" />
    <requestHandler name="/admin/properties" class="solr.admin.PropertiesRequestHandler" />
    <requestHandler name="/admin/file"       class="solr.admin.ShowFileRequestHandler" >
    <requestHandler name="/admin/file" 
    <requestHandler name="/admin/ping" class="solr.PingRequestHandler">
    <requestHandler name="/debug/dump" class="solr.DumpRequestHandler" >
    <requestHandler name="/replication" class="solr.ReplicationHandler" > 
    <requestHandler name="/spell" class="solr.SearchHandler" startup="lazy">
    <requestHandler name="/suggest" class="solr.SearchHandler" startup="lazy">
    <requestHandler name="/tvrh" class="solr.SearchHandler" startup="lazy">
    <requestHandler name="/clustering"
    <requestHandler name="/terms" class="solr.SearchHandler" startup="lazy">
    <requestHandler name="/elevate" class="solr.SearchHandler" startup="lazy">
    

    执行逻辑主要逻辑

    this.execute( req, handler, solrReq, solrRsp );
        sreq.getContext().put( "webapp", req.getContextPath() );
        sreq.getCore().execute( handler, sreq, rsp );
             handler.handleRequest(req,rsp);
             RequestHandlerBase
                  handleRequestBody( req, rsp );
    
  • 相关阅读:
    oracle的 listagg() WITHIN GROUP () 行转列函数的使用
    redis-配置文件详解
    Redis下载安装步骤及操作命令
    探索linux好玩的东西
    发送邮件的工具类
    微信小程序 云开发天然鉴权获取手机号
    JS 设计模式 -代理模式
    语言之魂——原型模式
    微信小程序 云开发中部分用户获取不到unionId
    js封装三级联动
  • 原文地址:https://www.cnblogs.com/donganwangshi/p/4202603.html
Copyright © 2011-2022 走看看