springcloud 整合zookeeper

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版本

再次启动成功,如图

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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值