Zookeeper入门-Linux环境下异常ConnectionLossException解决
实际项目开发中,用的是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解决的更多相关文章
- (收集)linux环境下乱码的解决方法
**************************** 就是从数据库中取出来时,在存入linux的文件里时,在字符流时制定编码格式.代码如下: FileOutputStream fos=new Fi ...
- JavaWeb入门——在Linux环境下安装Tomcat服务器
JavaWeb入门——在Linux环境下安装Tomcat服务器 摘要:本文主要学习了如何在Linux环境下安装Tomcat服务器. 准备工作 检查Java环境变量 检查系统是否配置了Java的环境变量 ...
- Java入门——在Linux环境下安装JDK并配置环境变量
Java入门——在Linux环境下安装JDK并配置环境变量 摘要:本文主要说明在Linux环境下JDK的安装,以及安装完成之后环境变量的配置. 使用已下载的压缩包进行安装 下载并解压 在Java的官网 ...
- Linux 环境下思源黑体字体与 Java 之间的兼容性问题的解决(补充说明)
在前一篇随笔中,我讲了一下有关 Linux 环境下思源黑体与 Java 之间的兼容性问题,后来经过测试发现,默认安装的思源黑体字体同时包含简体字体和繁体字体,并且其对应的语言编码也是不同的.尝试着把繁 ...
- Linux环境下ZooKeeper集群环境搭建关键步骤
ZooKeeper版本:zookeeper-3.4.9 ZooKeeper节点:3个节点 以下为Linux环境下ZooKeeper集群环境搭建关键步骤: 前提条件:已完成在Linux环境中安装JDK并 ...
- Linux环境下RPM包相互依赖的解决办法
Linux环境下安装Oracle11gR2提示缺少"Package: elfutils-libelf-devel-0.125 FAILED"包,按照提示安装该包时又提示缺少依 ...
- 在linux环境下使用icepdf或pdfbox将pdf转化成图片是乱码解决
在linux环境下使用icepdf或pdfbox将pdf转化成图片是出现乱码,网上查发下是itextpdf生成pdf引用"STSong-Light"字体而linux环境下没有这个字 ...
- 快速解决Ubuntu/linux 环境下QT生成没有可执行文件(application/x-executable)
快速解决Ubuntu/linux 环境下QT生成没有可执行文件(application/x-executable)(转载) 问题描述 与windows环境下不同,linux选择debug构建时并不 ...
- Linux环境下段错误的产生原因及调试方法小结(转)
最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且 项目工程庞大复杂,出现了不少问题,其中遇到最多.花费时间最长的问题就是著名的“段错误”(Segmentation F ...
随机推荐
- anshi
env.js主要是帮助我们读取根目录下以.env开头的环境变量,并判断是否生效. 比如在根目录下创建一个.env.local文件 改写一个环境变量 而没有改之前,它是在3000端口打开 path.js ...
- Windows 错误 0x80070570
Windows程序运行或者删除文件提示错误0x80070570:文件或目录损坏且无法读取. 环境 Windows 10 解决办法 管理员权限打开cmd,输入chkdsk 盘符: /f,提示输入Y,修复 ...
- js获取英文名字的首字母
场景:网站登录之后要将用户姓名的英文名字的首字母转换成大写的放上去. var str='zhang san'; var arr=str.split(" "); var fristC ...
- Laravel 多条件搜索查询
做查询功能时,输入的关键词有的为空,有的有值,如何实现多功能查询呢?这里介绍一种方法.(基于laravel) 原理很简单,第一步:判断接收的值,第二步:写查询语句.具体实现如下: //首先,创建句柄: ...
- linux下为firfox安装flash player
1.去官网下载×.tar.gz包,如:flash_player_npapi_linux.x86_64.tar.gz 2.解压 tar -zxvf flash_player_npapi_linux.x8 ...
- 20130910.Windows上安装和配置MongoDB
官方文档:http://docs.mongodb.org/manual/tutorial/ 1.下载软件 http://www.mongodb.org/downloads 2.解压 解压后进入bin目 ...
- hbase的hbase-site.xml配置文件
<property> <name>hbase.rootdir</name> <value>hdfs://server110/hbase</valu ...
- redis基本数据类型和对应的底层数据结构
Redis的数据类型包含string,list,hash,set,sorted set. Redis中定义了一个对象的结构体: /* * Redis 对象 */ typedef struct redi ...
- Bridge桥接模式(设计模式11)
在没有使用桥接模式: 扩展新问题(类归属膨胀问题) 1增加性的电脑类型,要增加每个品牌下面的类 2如果要增加一个新的电脑品牌,要增加美中电脑类型的类 违背单一职责原则: · 一个类:联想笔记本,有两个 ...
- 搭建ELK日志分析平台(上)—— ELK介绍及搭建 Elasticsearch 分布式集群
笔记内容:搭建ELK日志分析平台(上)-- ELK介绍及搭建 Elasticsearch 分布式集群笔记日期:2018-03-02 27.1 ELK介绍 27.2 ELK安装准备工作 27.3 安装e ...