windows下solrcloud+jetty+内嵌zookeeper伪集群环境搭建

来源:互联网 发布:java base64转码 编辑:程序博客网 时间:2024/06/04 18:57

利用内置的jetty+zookeeper搭建solrcloud集群服务环境

Jetty-solrcloud

Jetty集群不用搭建,使用内嵌的zookeeper,使用solrexample示例即可运行,本例实现运行三个nodesolrcloud,新建一个文件夹命名为jettycloud,将example全部内容拷贝到该目录下三份,分别重新命名为node1,node2,node3

1、启动node1jetty服务,cmd当前node1目录下执行如下命令:

 java -DzkRun -DnumShards=2 -Dbootstrap_confdir=./solr/collection1/conf -Dcollection.configName=myconf -jar start.jar  

然后访问 http://localhost:8983/solr/#/~cloud  

单独的服务,8983solr默认的端口,执行结果为collection1->shard1->172.20.163.63

                           Shard2

2、启动node2jetty服务,cmd当前node2目录下执行如下命令:

java -Djetty.port=7574 -DzkHost=localhost:9983 -jar start.jar  

注:需要更换jetty的端口号,避免冲突,和指定zk的端口

参数说明:

-Djetty.port设置这个参数的原因是我们在同一台计算机上运行服务,不能使用Jetty的默认端口了,默认端口已经被node1占了,随便选一个和默认端口不一样的端口。当在不同的计算机上启动的时候,也可以使用一样的端口。

-DzkHost这个参数告诉solr去哪里找ZooKeeper服务,默认情况下,ZooKeeper服务工作在solr端口加1000的那个端口上。jetty默认端口是8983,那么ZooKeeper的服务端口就是9983.

执行结果为:collection1->shard1->172.20.163.63:8983

                       Shard2->172.20.163.63:7574

                       Shard3

3、启动node3jetty服务,cmd当前node2目录下执行如下命令:

java -Djetty.port=8584 -DzkHost=localhost:9983 -jar start.jar

执行结果为:collection1->shard1->172.20.163.63:8983

                       Shard2->172.20.163.63:7574

                       Shard3->172.20.163.63:8584

默认设置为-DnumShards=2,所以最多为2shard,当启动两个jetty服务时,生成shard1shard2,每个分支有一个活动的服务,并且为主服务,当再增加服务时,依次向shard1shard2添加服务,个数始终保持平衡

4、还可以按照zookeeper ensemble集群

执行

java -DzkRun -DnumShards=2 

-Dbootstrap_confdir=./solr/collection1/conf -Dcollection.configName=myconf -DzkHost=localhost:9983,localhost:8574,localhost:9900 -jar start.jar

java -Djetty.port=7574 -DzkRun -DnumShards=2  -DzkHost=localhost:9983,localhost:8574,localhost:9900 -jar start.jar

java -Djetty.port=8900 -DzkRun -DnumShards=2 -DzkHost=localhost:9983,localhost:8574,localhost:9900 -jar start.jar

注:zookeeper按照jetty的端口号自动加1000

0 0