• curator-framework 使用采坑记之org.apache.zookeeper.ClientCnxn


    一、curator-framework  简介

    curator-framework 是对zookeeper做的分二次分布式封装处理,目前代码也是apache 开源社区维护,如下所示。

    github地址:https://github.com/apache/curator

    curator-framework 中包含了基于zookeeper的分布式锁的实现、服务discovery、leader选举、基于zk的缓存实现等。在curator-framework  提供了示例代码,如下所示:

    二、curator-framework  使用中的问题

    1、curator-framework 在使用分布式锁时遇到的问题:

    一开始使用的是2.13.0的版本,maven中引入的方式如下:

            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-framework</artifactId>
                <version>2.13.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-recipes</artifactId>
                <version>2.13.0</version>
            </dependency>

    使用时,客户端连接zk和启动都正常没有任何的问题,在切换到最新的4.3.0的版本后出现连接报错问题

            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>4.3.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-recipes</artifactId>
                <version>4.3.0</version>
            </dependency>
    

     

    着实郁闷了很久,使用pom分析看了一下依赖的关系,发现因为4.3.0 依赖的zk jar包版本和服务端的zk服务版本不一致,然后怀疑是 客户端和服务端版本不一致导致的,那么尝试修改maven中zk的jar包的依赖版本。

    本文作者:张永清   转载请注明博客园:https://www.cnblogs.com/laoqing/p/12768298.html

            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-framework</artifactId>
                <version>4.3.0</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.apache.zookeeper</groupId>
                        <artifactId>zookeeper</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-recipes</artifactId>
                <version>4.3.0</version>
                <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>

    首先排除apache.curator中的依赖的zk jar,然后重新引入和服务端版本一致的3.4.14版本的zk jar。

    客户端重新启动连接后,发现正常了,由此发现客户端和服务端版本一致,是可能会引发这个问题。

    另外如果zk的服务端配置的zoo.cfg配置的为主机名,那么客户端zk在连接时也需要用主机名去连接,在使用ip去连接时,也有可能会出现同样的问题。

    github参考代码:https://github.com/597365581/bigdata_tools/tree/master/yongqing-bigdata-tools/yongqing-zookeeper-tool

  • 相关阅读:
    Silverlight未能加载文件或程序集“XXX”或它的某一个依赖项。系统找不到指定的文件。
    Silverlight button样式
    全局变量的优缺点
    安装、卸载WINDOWS 服务
    递归
    数组常用api
    节流函数&防抖函数 柯里化函数
    数组
    js无缝轮播 和淡入淡出轮播
    作用域链和域解析
  • 原文地址:https://www.cnblogs.com/laoqing/p/12768298.html
Copyright © 2020-2023  润新知