实际项目开发中,用的是Linux环境。
  中午突然断电,死活连不上Zookeeper,最终发现是需要关闭防火墙。
  
  看日志,报错如下:
  Exception in thread "main" org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /test
at org.apache.zookeeper.KeeperException.create(KeeperException.java:99)
at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1501)
at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1529)
at com.jiq.test.ZooKeeperTest.main(ZooKeeperTest.java:12)

经过实践,最终发现是“防火墙”的原因。
  主要参考了网上的一篇文章。
  
  不正确的解决办法:
  “上网一查,全是说什么到Zookeeper服务的连接未完成,说是加下面这段代码就好了: 
CountDownLatch connectedLatch = new CountDownLatch(1);
        if (States.CONNECTING == zk.getState()) {  
            try {  
                connectedLatch.await();  
            } catch (InterruptedException e) {  
                throw new IllegalStateException(e);  
            }  
        }

我觉得这有点扯淡,首先官网没有任何提到要加这样的代码来等待连接准备好的话语,其次为什么本机可以,远端就不行,难道天生本机就一定能够快速建立好连接,远端就要等一等么? 
于是我决定自己思考,想了一天才觉得可能是防火墙问题,于是把windwos server 2008防火墙关闭,OK了,把CentOS防火墙关闭,也OK了,哎!”

看了这个哥们的描述,我深以为然啊。
 我也尝试过,加一些乱七八糟的代码,发现都不能解决问题。
 最终,尝试了这个哥们的“关闭防火墙”的解决办法。
  
 但是,这篇文章中,永久关闭防火墙的那种方式,是不对的,只要使用了,Zookeeper就连接不上。
 
 “CentOS关闭防火墙命令: 
CentOS Linux开启和关闭防火墙命令有两种,一种是临时的,重启即复原;另外一种是永久xìng的,重启不会复原。
1) 临时生效,重启后复原
开启: service iptables start
关闭: service iptables stop
2) 永久xìng生效,重启后不会复原
开启: chkconfig iptables on
关闭: chkconfig iptables off

我执行的是永久修改的命令,执行完了也可以不重启电脑,重启防火墙服务即可: service iptables restart ”

实际中,我用的是临时的关闭防火墙的办法,这样,如果服务器再次断电重启,还需要手动关闭。
这个哥们貌似是“永久关闭防火墙”,反正我也试了,永久关闭,总是不行,可能是我的问题。
这个哥们说,不用重启服务器,反正我没有重启,不知道重启了效果会如何。

一点感想
自己遇到的很多问题,网上基本都有答案了。
优先用别人的解决办法,是非常合适的,比较迅速,很快提升自己解决问题的能力。
技术框架之类的,主要还是别人生成,在水平不够之前,“拿来主义”是不错的。
随便一个工具框架,自己去搞,至少得个把月上年吧~

整理自己的技术体系,管理自己遇到的问题,很有必要。

一句话:建立健全自己的技术体系和社会生存能力体系。(怎么感觉像是官方文件呢~)

最近,抽空,分享下自己的浏览器收藏夹,和一些知识管理的心得体会~

参考资料
Zookeeper异常ConnectionLossException解决
http://www.sjsjw.com/kf_cloud/article/022572ABA018042.asp

Zookeeper入门-Linux环境下异常ConnectionLossException解决的更多相关文章

  1. (收集)linux环境下乱码的解决方法

    **************************** 就是从数据库中取出来时,在存入linux的文件里时,在字符流时制定编码格式.代码如下: FileOutputStream fos=new Fi ...

  2. JavaWeb入门——在Linux环境下安装Tomcat服务器

    JavaWeb入门——在Linux环境下安装Tomcat服务器 摘要:本文主要学习了如何在Linux环境下安装Tomcat服务器. 准备工作 检查Java环境变量 检查系统是否配置了Java的环境变量 ...

  3. Java入门——在Linux环境下安装JDK并配置环境变量

    Java入门——在Linux环境下安装JDK并配置环境变量 摘要:本文主要说明在Linux环境下JDK的安装,以及安装完成之后环境变量的配置. 使用已下载的压缩包进行安装 下载并解压 在Java的官网 ...

  4. Linux 环境下思源黑体字体与 Java 之间的兼容性问题的解决(补充说明)

    在前一篇随笔中,我讲了一下有关 Linux 环境下思源黑体与 Java 之间的兼容性问题,后来经过测试发现,默认安装的思源黑体字体同时包含简体字体和繁体字体,并且其对应的语言编码也是不同的.尝试着把繁 ...

  5. Linux环境下ZooKeeper集群环境搭建关键步骤

    ZooKeeper版本:zookeeper-3.4.9 ZooKeeper节点:3个节点 以下为Linux环境下ZooKeeper集群环境搭建关键步骤: 前提条件:已完成在Linux环境中安装JDK并 ...

  6. Linux环境下RPM包相互依赖的解决办法

    Linux环境下安装Oracle11gR2提示缺少"Package: elfutils-libelf-devel-0.125    FAILED"包,按照提示安装该包时又提示缺少依 ...

  7. 在linux环境下使用icepdf或pdfbox将pdf转化成图片是乱码解决

    在linux环境下使用icepdf或pdfbox将pdf转化成图片是出现乱码,网上查发下是itextpdf生成pdf引用"STSong-Light"字体而linux环境下没有这个字 ...

  8. 快速解决Ubuntu/linux 环境下QT生成没有可执行文件(application/x-executable)

    快速解决Ubuntu/linux 环境下QT生成没有可执行文件(application/x-executable)(转载)   问题描述 与windows环境下不同,linux选择debug构建时并不 ...

  9. Linux环境下段错误的产生原因及调试方法小结(转)

    最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且 项目工程庞大复杂,出现了不少问题,其中遇到最多.花费时间最长的问题就是著名的“段错误”(Segmentation F ...

随机推荐

  1. jq——html,text,val和对象访问

    html代码 1.html():获取的是对象内的html代码,类似于innerHTML 2.html(代码):设置html的内容,替换 $("div").html("hh ...

  2. .net基础总复习(2)

    第二天 文件操作常用类 File类   //操作文件的 //复制.剪切.创建.移除 //File.Create(@"C:\Users\BDSOFT\Desktop\new.txt" ...

  3. php数组 匹配键值

    1.array_search() //判断键值是否在数组中,//存在,返回值对应的键;//不存在,返回false;//例子:$type = array( "选考" => 'o ...

  4. RabbitMQ学习总结(3)——入门实例教程详解

    一.起航 本章节,柯南君将从几个层面,用官网例子讲解一下RabbitMQ的实操经典程序案例,让大家重新回到经典"Hello world!"(The simplest thing t ...

  5. Spring 7大功能模块的作用

    1.   Spring 7大功能模块的作用 1)   核心容器(Spring core) 核心容器提供Spring框架的基本功能.Spring以bean的方式组织和管理Java应用中的各个组件及其关系 ...

  6. ASP.NET-MVC中Entity和Model之间的关系

    Entity 与 Model之间的关系图 ViewModel类是MVC中与浏览器交互的,Entity是后台与数据库交互的,这两者可以在MVC中的model类中转换 MVC基础框架 来自为知笔记(Wiz ...

  7. 关于Thread的那些事

    关于Thread的那些事 1 : 你能够调用线程的实例方法Join来等待一个线程的结束.比如: public static void MainThread() { Thread t = new Thr ...

  8. 晋IT分享成长沙龙集锦

    第一期"晋IT"分享成长沙龙于2014年7月19日圆满结束.下面是相关内容整理和第二期预告. 各位伙伴认真的介绍自己,介绍自己的业务,分析自己眼下存在的问题,大家一起探讨,真诚出谋 ...

  9. C/S和B/S交互

    近期一直在做C/S的项目,每天都超忙,抽个时间写篇博客,之前一直做C/S项目就是各种窗口.各种控件,拖来拖去,然后点进去写方法,做BS的时候呢,由于一直使用的是mvc,所以就是常常手写代码.或者拖引用 ...

  10. What is the difference between Web Farm and Web Garden?

    https://www.codeproject.com/Articles/114910/What-is-the-difference-between-Web-Farm-and-Web-Ga Clien ...