前言
这次要讲的连接ZooKeeper是在外网的云服务器上,不同于以往的本机上的虚拟机上的ZooKeeper,将会有一些不同于本机的连接方式。连接外网服务器进行操作可以更好的适应企业化的开发,脱离了本机的限制,具有很强的实战意义。
前提环境
这里我是在做微服务开发进行连接ZooKeeper作为注册中心,所以服务器上必须已经安装了ZooKeeper并且具备Java环境,如果不知道如何安装请看教程:安装教程。本机通过idea集成开发环境通过springcloud技术连接外网服务器上的Zookeeper。ZooKeeper安装完记得修改配置文件,配置文件坐标定位在:ZooKeeper根目录/conf/
第一步:服务器端启动ZooKeeper服务
找到ZooKeeper的安装文件,进行bin目录,这里是Liunx服务器的centos版本所以执行命令:
./zkServer.sh start 启动ZooKeeper服务
./zkCli.sh 启动ZooKeeper客户端
第二步:开放服务器上ZooKeeper的端口
由于ZooKeeper默认是2181端口,执行命令:
firewall-cmd --zone=public --add-port=指定端口号/tcp --permanent
第三步:设置服务器的安全组
这点因不同服务器而异,阿里云服务器需要去控制台—云服务器----网络与安全----安全组进行配置规则
右侧界面选择配置规则
可以选择手动添加
如下填完,点击保存即可
第四步:连接ZooKeeper
先创建一个springboot的项目,然后进行pom依赖文件的配置,
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
<!-- 先排除自带的zookeeper3.5.3 -->
<exclusions>
<exclusion>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.9</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-test</artifactId>
</dependency>
接着在主启动类上打上@EnableDiscoveryClient 注解,该注解用于向zookeeper作为注册中心时注册服务,接下来设置配置文件参数,服务端口、服务名、服务器地址及端口
在所有都设置完成后,启动服务进行连接服务器上的ZooKeeper,控制台一切正常且ZooKeeper端可以查看到服务名说明连接成功!