1. 程式人生 > >搜索引擎系列八:solr-部署詳解(solr兩種部署模式介紹、獨立服務器模式詳解、SolrCloud分布式集群模式詳解)

搜索引擎系列八:solr-部署詳解(solr兩種部署模式介紹、獨立服務器模式詳解、SolrCloud分布式集群模式詳解)

nod 為什麽 用途 serve creat 復制 stand 數據 變量名

一、solr兩種部署模式介紹

Standalone Server 獨立服務器模式:適用於數據規模不大的場景

SolrCloud 分布式集群模式:適用於數據規模大,高可靠、高可用、高並發的場景

二、獨立服務器模式詳解

1. 獨立服務器模式架構

技術分享圖片

說明:

1、每個solr服務器實例(啟動的一個solr服務器進程)都有一個solr主目錄(系統變量名為:solr.solr.home)。啟動服務器實例時須為實例指定主目錄(默認為:server/solr目錄)。

2、solr主目錄中存放該服務器實例托管的內核。

3、一個solr服務器實例中可托管多個內核。

2.Solr主目錄介紹

每個主目錄下都有一個solr服務器實例配置文件solr.xml。 solrCloud模式下solr.xml可放置在zk上。

技術分享圖片

創建一個主目錄(復制solr.xml),在它之上啟動一個服務實例

技術分享圖片

啟動命令:solr.cmd start -s D:/test/solrhome -p 8984

技術分享圖片

3. solr命令介紹

啟動服務器實例命令:

bin/solr start [options]

bin/solr start -help

bin/solr restart [options]

bin/solr restart -help

註意:重啟要用和啟動時一樣的options

啟動時指定solr主目錄的命令:solr.cmd start -s D:/test/solrhome -p 8984

查看本機上運行的solr服務實例的狀態:bin/solr status

技術分享圖片

停止solr服務實例:

bin/solr stop [options]

bin/solr stop -help

停止單個服務:

bin/solr stop –p port

停止所有solr實例:

bin/solr stop -all

4. core 內核詳解

4.1 內核以及內核的用途

內核:是在Solr服務器中的具體唯一命名的、可管理和可配置的索引。一臺solr服務器可以托管一個或多個內核。

內核的典型用途:區分不同模式的文檔

4.2 core 內核管理:

創建內核

bin/solr create [options]

bin/solr create –help

bin/solr create_core [options]

bin/solr create_core -help

示例:

bin/solr create –c mycore –p 8983

-c <name> 內核的名字(必需).

-d <confdir> 內核配置目錄。默認_default.

-p <port> 創建命令要發送到的solr服務實例的端口。如未指定則獲取本機運行的solr服務實例列表的第一個。

卸載、加載、重載內核

技術分享圖片

刪除內核

bin/solr delete [options]

bin/solr delete -help

示例:

bin/solr delete –c corename –p port

4.3 core 內核目錄結構

技術分享圖片

內核屬性文件core.properties的作用:配置內核的一些配置、作為內核的標識在啟動solr的時候加載內核

註意:可以看到集群模式下是沒有conf目錄的,這是因為集群模式的conf是放在zk下給所有的內核使用的

內核配置文件目錄

技術分享圖片

三、SolrCloud分布式集群模式詳解

1. 為什麽需要分布式集群模式?

源於需求:

1. 索引數據量大

如何存儲? 如何保證搜索性能?

2. 如何保證高可靠、高可用?

3. 如何應對高並發、實時響應需求?

索引將被如何存儲?

分割成多個片存儲到集群的不同節點上,每個分片有備份,存儲在集群的不同節點上。

獨立服務器上索引叫內核,那集群上索引叫什麽?

solrCloud中以 collection(集合)來稱呼索引,內核存儲的是集合分片(shard)的備份(replication)

2. SolrCloud分布式集群架構

技術分享圖片

3. 分布式集群模式啟動

3.1 啟動zookeeper

獨立的zookeeper,則需先啟動zookeeper

內嵌的zookeeper,則先啟動包含zookeeper的solrNode

3.2 啟動solrNode

內嵌的zookeeper的第一個solrNode節點服務啟動:

bin/solr start –c –p port –s solrhome

其他solr節點的啟動:

bin/solr start –c –p port –s solrhome –z zkhost:port

註意:啟動的zookeeper實例的端口為 slor實例的端口+1000

4. 分布式集群模式部署練習

在我們的電腦上部署一個兩個節點的集群

步驟1:創建兩個solr主目錄,如

D:\test\solrCloud\node1\solr

D:\test\solrCloud\node2\solr

node1/solr目錄下需要zk的配置文件,到D:\solr-7.3.0\server\solr 下拷貝 zoo.cfg

然後到D:\solr-7.3.0\server\solr拷貝solr.xml到兩個solr目錄下

步驟2:啟動第一個內嵌有zk的solrNode

solr.cmd start –c –s D:/test/solrCloud/node1/solr -m 100M

沒有指定端口默認8983

-m 100M表示分配100M的內存

步驟3:啟動第二個solrNode

solr.cmd start –c –s D:/test/solrCloud/node2/solr -m 100M -p 8984 –z localhost:9983

註意:啟動的zookeeper實例的端口為 slor實例的端口+1000

在瀏覽器輸入地址http://localhost:8983/solr查看現在的solr的web控制臺有什麽變化

技術分享圖片

創建集合 collection

集合—分片數2---備份因子2

solr.cmd create –c collection01 –d _default –shards 2 –replicationFactor 2 –p 8983

說明:在8983這個solr實例上使用默認配置_default創建一個集合collection01,這個集合有2個分片,每個分片有2個備份

solr.cmd create –c collection02 –d sample_techproducts_configs –shards 2 –replicationFactor 2 –p 8983

說明:在8983這個solr實例上使用默認配置sample_techproducts_configs創建一個集合collection02,這個集合有2個分片,每個分片有2個備份

技術分享圖片

創建完成以後就可以在solr的管理頁面看到創建的集合了

技術分享圖片

提交數據到集合collection02中:

Linux/Mac;

solr-7.3.0:$ bin/post -c collection02 example/exampledocs/*

Windows:

java -jar -Dc=collection02 -Dauto example\exampledocs\post.jar example\exampledocs\*

執行完以後就可以在集合的備份內核中看到提交的數據了

技術分享圖片

技術分享圖片

搜索引擎系列八:solr-部署詳解(solr兩種部署模式介紹、獨立服務器模式詳解、SolrCloud分布式集群模式詳解)