solr集群搭建

1. solr集群原理

在这里插入图片描述

2. SolrCloud概念以及结构

2.1 概念

SolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud。当一个系统的索引数据量少的时候是不需要使用SolrCloud的,当索引量很大,搜索请求并发很高,这时需要使用SolrCloud来满足这些需求。

2.2 结构

SolrCloud为了降低单机的处理压力,需要由多台服务器共同来完成索引和搜索任务。实现的思路是将索引数据进行Shard(分片)拆分,每个分片由多台的服务器共同完成,当一个索引或搜索请求过来时会分别从不同的Shard的服务器中操作索引。
SolrCloud需要Solr基于Zookeeper部署,Zookeeper是一个集群管理软件,由于SolrCloud需要由多台服务器组成,由zookeeper来进行协调管理。

3. solr集群搭建

3.1 创建solr-cluster目录

在/usr/local/src下创建solr-cluster目录
在这里插入图片描述

3.2 单机版的solr到该目录下

copy单机版的solr到该目录下,即:copy tomcat到该目录下
在这里插入图片描述

3.3 copy solr home到该目录下

在这里插入图片描述

3.4 删除solr home下的数据

在这里插入图片描述

3.5 修改tomcat下solr的home

在这里插入图片描述

3.6 zookeeper管理配置文件

由于zookeeper统一管理solr的配置文件(主要是schema.xml、solrconfig.xml), solrCloud各各节点使用zookeeper管理的配置文件。也就是将solr home目录下的conf里的所有配置文件上传到zookeeper中。

这里我们通过solr提供的zkCli.sh进行上传

执行如下脚本:

sh /usr/local/src/solr-4.10.3/example/scripts/cloud-scripts/zkcli.sh -zkhost 192.168.200.128:2181,192.168.200.128:2182,192.168.200.128:2183 -cmd upconfig -confdir /usr/local/src/solr-4.10.3/example/solr/collection1/conf/ -confname myconf -solrhome /usr/local/src/solr-4.10.3/example/solr

在这里插入图片描述

3.7 查看文件是否上传成功

进入zookeeper任意的bin目录下
在这里插入图片描述
在这里插入图片描述

3.8 将solr与zookeeper进行关联

将solr与zookeeper进行关联,即将solr交给zookeeper进行管理,在tomcat的bin目录下修改catalina.sh

JAVA_OPTS="-DzkHost=192.168.200.128:2181,192.168.200.128:2182,192.168.200.128:2183"

在这里插入图片描述

3.9 修改SolrCloud监控端口

修改solrhome下的solr.xml文件
在这里插入图片描述

3.10 依次copy 三份solr home

在这里插入图片描述
注意:修改solrCloud的端口分别为8081、8082、8083.
修改solr.xml中的端口

3.3.11 依次copy 三份tomcat

在这里插入图片描述
注意:
1、指定solr home的位置
2、修改tomcat的端口号,分别为:8081、8082、8083

3.12 solr分片配置

numShards=2
name=collection1
shard=shard1
coreNodeName=core_node1

以上参数说明
numShards=2 //分片数量
name=collection1 //core名称
shard=shard1 //所属分片
coreNodeName=core_node1 //结点名称

192.168.200.128:8080 片1 1节点
192.168.200.128:8081 片1 2节点
192.168.200.128:8082 片2 3节点
192.168.200.128:8083 片2 4节点

在这里插入图片描述
192.168.200.128:8080 片1 1节点
在这里插入图片描述
192.168.200.128:8081 片1 2节点
在这里插入图片描述
192.168.200.128:8082 片2 3节点
在这里插入图片描述
192.168.200.128:8083 片2 4节点
在这里插入图片描述

3.13 分别启动tomcat并测试

在这里插入图片描述
在这里插入图片描述

4. Solr的集群版Java接口

	//集群版 Solr测试
	@Test
	public void testSolrCloud() throws Exception {
		//配置三台zk的IP
		String zkHost = "192.168.200.128:2181,192.168.200.133:2181,192.168.200.134:2181";
		//创建集群版客户端
		CloudSolrServer solrServer = new CloudSolrServer(zkHost);
		//设置collection1
		solrServer.setDefaultCollection("collection1");
		//保存数据
		//创建一个存储数据的Solr对象
		SolrInputDocument doc = new SolrInputDocument();
		//保存ID
		doc.setField("id", 4);
		//保存Name
		doc.setField("name", "我是中国人");
		//保存数据
		solrServer.add(doc);
		//手动提交
		solrServer.commit();
		
	}

4.1 集群版Java接口交由Spring管理

	<!-- 配置集群版的CloudSolrServer -->
	<bean id="cloudSolrServer"  class="org.apache.solr.client.solrj.impl.CloudSolrServer">
		<!-- 设置请求路径 连接三台zkHost -->
		<constructor-arg index="0" value="192.168.200.128:2181,192.168.200.133:2181,192.168.200.134:2181"/>
		<!-- 设置默认的collection1 -->
		<property name="defaultCollection" value="collection1"/>
	</bean>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值