zookeeper简介

zookeeper  是Apache 的Hadoop 中的一个开源子项目,其主要提供了服务的统一命名,分布式下配置的管理,集群管理等功能,

zk是一种文件系统的方式构成的,最顶层是/根目录,下每一个nameserver(node 节点) ,也可以理解我我们平常所说的文件夹类似,其唯一的区别介绍,zk的znode 节点能够进行小量的数据存储。 我们都可以自由的进行增加,删除  。zk的节点一个有四种类型:

持久性节点:就是说,zk与客户端断开连接之后,节点还存在

持久性有序节点:zk与客户端断开连接之后,节点存在,但是zk对节点进行了顺序编号的

临时节点:zk与客户端断开连接之后,节点不存在,删除

临时有序节点:zk与客户断开连接之后,节点不存在,被删除,只是节点是被顺序编号的

zookeeper 安装:

 安装包下载地址: https://zookeeper.apache.org/releases.html    环境变量配置好之后。

wind里面,直接使用下载的安装包解压之后的bin/目录下的两个文件,

1.启动服务

springcloud 整合zookeeper

springcloud 整合zookeeper

2.启动客户端测试

springcloud 整合zookeeper

springcloud 整合zookeeper

springcloud 整合zk

1.jar

<!--springcloud 依赖-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-dependencies</artifactId>
    <version>${spring-cloud.version}</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>
<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
    </dependency>
</dependencies>

启动类

@SpringBootApplication
@EnableDiscoveryClient
public class ZkApp {
    public static void main(String[] args) {
        SpringApplication.run(ZkApp.class);
    }
}

配置文件:

server:
  port: 8013
spring:
  application:
    name: myzkserver
  cloud:
    zookeeper:
      connect-string: localhost:2181

启动启动类:报错 null 空指针 不明白为什么报,接着看后面的异常

springcloud 整合zookeeper

springcloud 整合zookeeper

这里zk 有异常抛出,说是不能实现创建myzkserver 这个节点的意思 但是确实没有看出问题,在看zookeeper  服务包的错

springcloud 整合zookeeper

看了下,这个错误在网上查找了下,是因为版本的原因。

 

我原来本地zk是3.4.14 的,springcloud 依赖的是zk  2.0的版本   所以重新依赖zk 版本  3.4.14  

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
    <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.14</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <scope>test</scope>
</dependency>

之后启动,一样报版本的错误   所以在查询发现  springcloud 2.x的版本对应的zk 版本必须是3.5.x以上的 ,所以就改用了zk3.6.2版本

springcloud 整合zookeeper

再次启动成功,如图

springcloud 整合zookeeper

通过客户端查看新配置的服务

 

springcloud 整合zookeeper

相关文章: