一.启动机制

  Solr作为一个Java Web应用默认运行在Jetty上,使用全局Java属性【solr.solr.home】来定位配置文件的根目录。在启动时,Solr会扫描主目录下包含core.properties文件的子文件夹。该文件定义了Solr中自动发现内核的基本属性。例如:

  

  此外,该配置文件还可以设置一系列可选参数对内核的定义做出适当的调整,具体如下:

  

  Solr可以在启动期间利用core.properties文件自动发现内核。一旦内核被发现,Solr就能定位该内核的solrconfig.xml配置文件。Solr利用solrconfig.xml文件来初始化内核。

二.配置管理

  1.solrconfig.xml配置文件概述

  

  

三.常见类型

  在solrconfig.xml文件中,存在各种用于表示数据结构和数据类型的XML元素,具体如下:

  

  备注:arr和lst之间的最大不同是lst中的每个元素都有一个name属性,而arr的子元素则没有。

四.JMX

  jmx用于激活Solr的MBeans,允许系统管理员使用一些类似Nagios的常用系统监控工具监控和管理核心Solr组件。简言之,MBean是一个Java对象,它可以调用JAVA管理扩展JMX的API获得Solr的配置参数和统计信息。MBeans可以被Solr自动发现并被JMX兼容工具监控。这样可以将对Solr监控集成到已有的系统监控机制中。

五.请求管理

  对Solr发起请求需要通过HTTP。如果是查询请求,则为HTTP GET方法。如果是索引请求,则为HTTP POST方法。一个GET请求及相关介绍例子如下:

  

  请求执行流程如下:

  

  执行流程步骤:

  1.客户端应用将HTTP GET请求发送至http://localhost:8983/solr/collection1/select?q=...,查询参数通过该GET请求中的查询字符串进行传递。

  2.Jetty接收客户端请求,并根据请求路径中/solr后的内容将该请求交给Solr中的统一请求分配器。从技术上讲,统一请求分配器就是一个Java servlet过滤器,可以为Solr Web应用过滤出符合/*的URL。

  3.Solr的请求分配器根据客户端请求路径中的collection1确定所查询的内核名称。接下来,请求分配器会定位到solrconfig.xml文件中定义的/select请求处理器。

  4./select请求处理器利用一系列搜索组件处理客户端请求。

  5.在处理完客户端请求之后,查询结果经由响应读写器组件进行格式化之后,返回给客户端应用。默认情况下,/select请求处理器返回的结果数据为XML格式。

  请求分配器的主要职能是根据用户请求语句定位达处理该请求的内核,如上面的collection1,然后将用户请求交给内核中已注册的对应请求处理器,如上面的/select。

Solr核心特性【启动机制,配置管理,请求管理】的更多相关文章

  1. Linux操作系统-CentOS6启动流程和服务管理

    Linux操作系统-CentOS6启动流程和服务管理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Linux组成 1>.Linux: kernel+rootfs ker ...

  2. Solr初始化源码分析-Solr初始化与启动

    用solr做项目已经有一年有余,但都是使用层面,只是利用solr现有机制,修改参数,然后监控调优,从没有对solr进行源码级别的研究.但是,最近手头的一个项目,让我感觉必须把solrn内部原理和扩展机 ...

  3. Fpm启动机制及流程分析———详细

    FPM(FastCGI Process Manager)是PHP FastCGI运行模式的一个进程管理器,从它的定义可以看出,FPM的核心功能是进程管理,那么它用来管理什么进程呢?这个问题就需要从Fa ...

  4. Mysql --09 Innodb核心特性——事务

    目录 Innodb核心特性--事务 1.什么是事务 2.事务的通俗理解 3.事务ACID特性 4.事务流程举例 5.事务的控制语句 6.事务隐式提交情况 7.事务日志redo基本功能 8.redo数据 ...

  5. 一篇文章带你搞懂 etcd 3.5 的核心特性

    作者 唐聪,腾讯云资深工程师,极客时间专栏<etcd实战课>作者,etcd活跃贡献者,主要负责腾讯云大规模k8s/etcd平台.有状态服务容器化.在离线混部等产品研发设计工作. etcd ...

  6. 第二十章、启动流程、模块管理与 Loader grub

    Boot Loader: Grub 『 boot loader 是加载核心的重要工具』!没有 boot loader 的话,那么 kernel 根本就没有办法被系统加载! boot loader 的两 ...

  7. [Spark内核] 第30课:Master的注册机制和状态管理解密

    本課主題 Master 接收 Worker, Driver, Application Master 处理 Driver 狀态变换 Master 处理 Executor 狀态变换 [引言部份:你希望读者 ...

  8. JAVAEE——Solr:安装及配置、后台管理索引库、 使用SolrJ管理索引库、仿京东的电商搜索案例实现

    1 学习回顾 1. Lucene  是Apache开源的全文检索的工具包 创建索引 查询索引 2. 遇到问题? 文件名 及文件内容  顺序扫描法  全文检索 3. 什么是全文检索? 这种先创建索引 再 ...

  9. bootparam - 介绍Linux核心的启动参数

    描叙 Linux 核心在启动的时候可以接受指定的"命令行参数"或"启动参数".在通常情况下,由于核心有可能无法识别某些硬件,或可能将某些硬件识别为不正确的配置, ...

随机推荐

  1. jQuery的DataTables中的TableTools的基本使用

    DataTables的TableTools插件提供复制,导出excel.pdf,打印等功能. DataTables官网:http://datatables.net TableTools示例:http: ...

  2. day27_8.6 网络编程7层协议

    一.软件开发架构 在所有软件中有两种结构模式 1.c/s架构(client/server) c代表的是客户端 s代表的是服务端 2.b/s架构(browser/server) b代表的是浏览器 s代表 ...

  3. 01-人脸识别-基于MTCNN,框选人脸区域-detect_face_main

    (本系列随笔持续更新) 搭建要求 详细的搭建过程在 参考资料1 中已经有啦. TensorFlow 1.6.0 OpenCV 2.4.8 仅仅是加载和读取图片的需要 Ubuntu 14.04 64bi ...

  4. luoguP4294 [WC2008]游览计划

    题意 斯坦纳树裸题. 显然答案是棵树. 设\(f[i][s]\)表示以\(i\)为根,集合为\(s\)的最小代价. 先在同根之间转移: \(f[i][s]=min(f[i][t]+f[i][s\ xo ...

  5. ActionResult源码分析笔记

    ActionResult是一个抽象类: public abstract class ActionResult { public abstract void ExecuteResult(Controll ...

  6. tornado之获取参数

    self.write()  # 返回字符串 self.redirect()  # 重定向 self.render()  # 返回html页面 一. 获取url中携带的参数, 如: 127.0.0.1: ...

  7. Linux性能优化实战学习笔记:第三十九讲

    一.上节回顾 上一节,我带你学习了 tcpdump 和 Wireshark 的使用方法,并通过几个案例,带你用这两个工具实际分析了网络的收发过程.碰到网络性能问题,不要忘记可以用 tcpdump 和W ...

  8. [LeetCode] 277. Find the Celebrity 寻找名人

    Suppose you are at a party with n people (labeled from 0 to n - 1) and among them, there may exist o ...

  9. iOS组件化实现方案

    作者原文iOS组件化 - 路由架构从0到1实战  合伙呀 1.CTMediator作为路由中间件 2.基础UI组件以pod形式引入,并且能够独立运行调试 3.基础工具组件以pod形式引入,并且能够独立 ...

  10. Vue.js 源码分析(十二) 基础篇 组件详解

    组件是可复用的Vue实例,一个组件本质上是一个拥有预定义选项的一个Vue实例,组件和组件之间通过一些属性进行联系. 组件有两种注册方式,分别是全局注册和局部注册,前者通过Vue.component() ...