Solr核心特性【启动机制,配置管理,请求管理】
一.启动机制
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核心特性【启动机制,配置管理,请求管理】的更多相关文章
- Linux操作系统-CentOS6启动流程和服务管理
Linux操作系统-CentOS6启动流程和服务管理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Linux组成 1>.Linux: kernel+rootfs ker ...
- Solr初始化源码分析-Solr初始化与启动
用solr做项目已经有一年有余,但都是使用层面,只是利用solr现有机制,修改参数,然后监控调优,从没有对solr进行源码级别的研究.但是,最近手头的一个项目,让我感觉必须把solrn内部原理和扩展机 ...
- Fpm启动机制及流程分析———详细
FPM(FastCGI Process Manager)是PHP FastCGI运行模式的一个进程管理器,从它的定义可以看出,FPM的核心功能是进程管理,那么它用来管理什么进程呢?这个问题就需要从Fa ...
- Mysql --09 Innodb核心特性——事务
目录 Innodb核心特性--事务 1.什么是事务 2.事务的通俗理解 3.事务ACID特性 4.事务流程举例 5.事务的控制语句 6.事务隐式提交情况 7.事务日志redo基本功能 8.redo数据 ...
- 一篇文章带你搞懂 etcd 3.5 的核心特性
作者 唐聪,腾讯云资深工程师,极客时间专栏<etcd实战课>作者,etcd活跃贡献者,主要负责腾讯云大规模k8s/etcd平台.有状态服务容器化.在离线混部等产品研发设计工作. etcd ...
- 第二十章、启动流程、模块管理与 Loader grub
Boot Loader: Grub 『 boot loader 是加载核心的重要工具』!没有 boot loader 的话,那么 kernel 根本就没有办法被系统加载! boot loader 的两 ...
- [Spark内核] 第30课:Master的注册机制和状态管理解密
本課主題 Master 接收 Worker, Driver, Application Master 处理 Driver 狀态变换 Master 处理 Executor 狀态变换 [引言部份:你希望读者 ...
- JAVAEE——Solr:安装及配置、后台管理索引库、 使用SolrJ管理索引库、仿京东的电商搜索案例实现
1 学习回顾 1. Lucene 是Apache开源的全文检索的工具包 创建索引 查询索引 2. 遇到问题? 文件名 及文件内容 顺序扫描法 全文检索 3. 什么是全文检索? 这种先创建索引 再 ...
- bootparam - 介绍Linux核心的启动参数
描叙 Linux 核心在启动的时候可以接受指定的"命令行参数"或"启动参数".在通常情况下,由于核心有可能无法识别某些硬件,或可能将某些硬件识别为不正确的配置, ...
随机推荐
- 莫烦TensorFlow_04 placeholder
import tensorflow as tf input1 = tf.placeholder(tf.float32) input2 = tf.placeholder(tf.float32) outp ...
- hdfs.server.datanode.DataNode: Block pool ID needed, but service not yet registered with NN
启动hadoop 发现 50070 的 livenode 数量是 0 查看日志, hdfs.server.datanode.DataNode: Block pool ID needed, but se ...
- 利用nodejs识别二维码内容的方法
const decodeImage = require('jimp').read; const qrcodeReader = require('qrcode-reader'); qrDecode(&q ...
- Codeforces Round #530 (Div. 2) F 线段树 + 树形dp(自下往上)
https://codeforces.com/contest/1099/problem/F 题意 一颗n个节点的树上,每个点都有\(x[i]\)个饼干,然后在i节点上吃一个饼干的时间是\(t[i]\) ...
- Sentinel: 分布式系统的流量防卫兵
前言 在 Spring Cloud 体系中,熔断降级我们会使用 Hystrix 框架,限流通常会在 Zuul 中进行处理,Zuul 中没有自带限流的功能,我们可以自己做限流或者集成第三方开源的限流框架 ...
- java基础之----cookie,session,jwt
概要 web中为什么要引入cookie.session机制,为了验证用户的身份,验证用户的身份是为了系统的安全,那如果是系统和系统之间的API调用怎么办呢?因为系统之间调用往往是没有用户系统的(用户系 ...
- 【idea】【mysql】idea连接mysql
- linux-centos安装图解及配置IP远程连接
本次安装使用vm软件的15版本,系统为centos7.6(1810) 系统安装图解>配置IP信息联网>真实机是无线网络状态,虚拟机如何联网>远程工具连接虚拟机 一,vm安装cento ...
- 关于wepy小程序图片显示问题
如果图片资源在本地,用background-image 是无法找到本地资源的,只能通过image标签用src进行引入: 图片资源在服务器上,用背景图片和image进行引入,在安卓真机上测试是没有问题的 ...
- 乘法器——booth编码
博主最近在学习加法器.乘法器.IEEE的浮点数标准,作为数字IC的基础.当看到booth编码的乘法器时,对booth编码不是很理解,然后在网上找各种理解,终于豁然开朗.现将一个很好的解释分享给大家,希 ...