阿里云服务器搭建Solr集群[图文详解]

Solr集群

Solr集群的架构

SolrCloud

需要用到solr+zookeeper

 

 

要完成的集群结构

 

Zookeeper

1、集群管理

主从的管理、负载均衡、高可用的管理。集群的入口。Zookeeper必须是集群才能保证高可用。Zookeeper有选举和投票的机制。集群中至少应该有三个节点。

2、配置文件的集中管理

搭建solr集群时,需要把Solr的配置文件上传zookeeper,让zookeeper统一管理。每个节点都到zookeeper上取配置文件。

3、分布式锁

4、忘了

 

集群需要的服务器

Zookeeper:3台

Solr:4台

 

伪分布式,zookeeper三个实例、tomcat(solr)需要四个实例。

 

Zookeeper需要安装jdk。

 

集群搭建步骤

第一部分:Zookeeper集群搭建

第一步:需要把zookeeper的安装包上传到服务器。

zookeeper-3.4.6.tar.gz

第二步:把zookeeper解压。

第三步:把zookeeper向/usr/local/solr-cloud目录下复制三份。

第三步:配置zookeeper。

1、在zookeeper01目录下创建一个data文件夹。

2、在data目录下创建一个myid的文件

3、Myid的内容为1(02对应“2”,03对应“3”)

4、Zookeeper02、03以此类推。

5、进入conf文件,把zoo_sample.cfg文件改名为zoo.cfg

6、修改zoo.cfg,把dataDir=属性指定为刚创建的data文件夹。

7、修改zoo.cfg,把clientPort指定为不冲突的端口号(01:2181、02:2182、03:2183)

8、在zoo.cfg中添加如下内容:

server.1=192.168.25.154:2881:3881

server.2=192.168.25.154:2882:3882

server.3=192.168.25.154:2883:3883

 

第四步:启动zookeeper。

Zookeeper的目录下有一个bin目录。使用zkServer.sh启动zookeeper服务。

启动:./zkServer.sh start

关闭:./zkServer.sh stop

查看服务状态:./zkServer.sh status

 

第二部分:搭建solr集群

第一步:安装四个tomcat,修改其端口号不能冲突。8080~8083

第二步:向tomcat下部署solr。把单机版的solr工程复制到tomcat下即可。

第三步:为每个solr实例创建一solrhome。

第四步:为每个solr实例关联对应的solrhome。修改web.xml

第五步:修改每个solrhome下的solr.xml文件。修改host、hostPort两个属性。分别是对应的ip及端口号。

 

第六步:把配置文件上传到zookeeper。需要使用

/root/solr-4.10.3/example/scripts/cloud-scripts/zkcli.sh命令上传配置文件。

把/usr/local/solr-cloud/solrhome01/collection1/conf目录上传到zookeeper。

需要zookeeper集群已经启动。

./zkcli.sh -zkhost 192.168.11.134:2181,192.168.11.134:2182,192.168.11.134:2183 -cmd upconfig -confdir /usr/local/solr-cloud/solrhome01/collection1/conf -confname myconf

第七步:查看是否上传成功。

使用zookeeper的zkCli.sh命令。

第八步:告诉solr实例zookeeper的位置。需要修改tomcat的catalina.sh添加

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

每个节点都需要添加。

第九步:启动每个solr实例。

 

第十步:集群分片。

将集群分为两片,每片两个副本。

http://192.168.11.134:8080/solr/admin/collections?action=CREATE&name=collection2&numShards=2&replicationFactor=2

 

 

 

第十一步:删除不用collection1

http://192.168.11.134:8080/solr/admin/collections?action=DELETE&name=collection1

 

 

 

使用solrJ连接集群

@Test

public void testSolrClout() throws Exception {

//创建一个SolrServer对象

CloudSolrServer solrServer = new CloudSolrServer("192.168.11.134:2181,192.168.11.134:2182,192.168.11.134:2183");

//设置默认的collection

solrServer.setDefaultCollection("collection2");

//创建一个文档对象

SolrInputDocument document = new SolrInputDocument();

document.addField("id", "test01");

document.addField("item_title", "title1");

//添加文档

solrServer.add(document);

//提交

solrServer.commit();

}

 

项目切换到集群

只需要在spring容器中配置一个集群版的SolrServer对象即可。

以上,完成自己利用阿里云服务器搭建的一个伪集群,也算是模拟一下,供大家学习参考

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

油炸小波

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值