一.启动机制

  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. Django简介(MVC、MTV)

    Django简介 MVC Model(模型)- 应用程序中处理数据逻辑部分且与数据库交互,用于存取数据的部分 View(视图)- 用于处理后的数据界面展示,且视图通常是由模型数据创建的,是用户看到并与 ...

  2. JDOJ3010 核反应堆

    JDOJ3010 核反应堆 https://neooj.com/oldoj/problem.php?id=3010 题目描述 某核反应堆有两类事件发生: 高能质点碰击核子时,质点被吸收,放出3个高能质 ...

  3. VMware虚拟机安装使用及系统安装教程

    虚拟机是利用软件来模拟出完整计算机系统的工具.具有完整硬件系统功能的.运行在一个完全隔离环境中.虚拟机的使用范围很广,如未知软件评测.运行可疑型工具等,即使这些程序中带有病毒,它能做到的只有破坏您的虚 ...

  4. 5.Vue的组件

    1.什么是组件 组件是可复用的Vue实例,也就是一组可以复用的模版,类似JSTL的自定义标签. 你可能会有页头.侧边栏.内容区等组件,每个组件又包含了其它的像导航链接.博文之类的组件. 2.第一个Vu ...

  5. 原生js-input框全选

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. 从excel中转存sql

    1.pom文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="htt ...

  7. Oracle--DBV命令行工具用法详解及坏块修复

    一,介绍 DBV(DBVERIFY)是Oracle提供的一个命令行工具,它可以对数据文件物理和逻辑两种一致性检查.但是这个工具不会检查索引记录和数据记录的匹配关系,这种检查必须使用analyze va ...

  8. django实战(四)--修改数据

    这节我们实现修改数据的功能,惯例,还是先上代码: urls.py urlpatterns=[ path('curd/edit/',views.curd_edit,name='curdedit'), p ...

  9. Spring Boot 代码覆盖率测试

    代码覆盖率测试是规范软件开发流程里一个必不可少的环节.一般都是在PG末尾阶段,伴随着IT自测产生. ↑以上,是自己yy出来的啊,反正我司是这样要求的.不跑覆盖率,鬼知道你在代码里夹杂了一些什么东西. ...

  10. RabbitMQ的构架

    初识rabbitMQ RabbitMQ 是一个由 Erlang 语言开发的 AMQP 的开源实现. AMQP :Advanced Message Queue,高级消息队列协议.它是应用层协议的一个开放 ...