前言
这次要讲的连接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端可以查看到服务名说明连接成功!


















