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.启动服务
2.启动客户端测试
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 空指针 不明白为什么报,接着看后面的异常
这里zk 有异常抛出,说是不能实现创建myzkserver 这个节点的意思 但是确实没有看出问题,在看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版本
再次启动成功,如图
通过客户端查看新配置的服务