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

利用内置的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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot是一个用于创建独立的、基于Spring的应用程序的框架,它简化了Spring应用程序的配置和部署过程。Jetty是一个开源的Java HTTP服务器和Servlet容器,它支持WebSocket协议。WebSocket是一种在Web浏览器和服务器之间进行全双工通信的协议。 结合Spring Boot、Jetty和WebSocket,可以实现一个基于WebSocket的实时通信应用程序。下面是一个简单的介绍: 1. 首先,使用Spring Boot创建一个基本的Web应用程序。可以使用Spring Initializr来快速生成项目结构和依赖。 2. 在项目的依赖中添加Spring Boot和Jetty的相关依赖。例如,在pom.xml文件中添加以下依赖: ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jetty</artifactId> </dependency> ``` 3. 创建一个WebSocket处理器类,用于处理WebSocket连接和消息。可以使用Spring的`@Controller`注解和`@MessageMapping`注解来定义处理方法。 4. 在应用程序的配置类中,使用`@EnableWebSocket`注解启用WebSocket支持,并配置WebSocket处理器。 5. 运行应用程序,并通过WebSocket客户端连接到应用程序的WebSocket端点。可以使用JavaScript或其他编程语言来实现WebSocket客户端。 以上是一个简单的介绍,如果你对具体的实现细节或其他相关问题有进一步的了解,请告诉我。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值