用zookeeper体验监听服务器是否还活着
来源:互联网 发布:php 微信开发 编辑:程序博客网 时间:2024/06/06 01:01
丛网络上及视频里学习的代码稍微改编了一下, 配合自己的情况(三台zookeeper 虚拟机 HSlave1 HSlave2 HSlave3) ,模拟server挂掉后客户端得到的通知情况.
步骤
1. 启动三个Server的线程分别代表三台Server, 每个线程对应一台Server
2. 启动客户端,可以启动许多个,也可以只启动一个
3. 将一台Server 断线(在控制台用root账户执行shutdown now ),然后重新启动但不注册
4. 将另外2台Server依序断线
Server程序如下:
运行结果如下
[INFO ][2017/08/09 19:48:53915][org.apache.zookeeper.ClientCnxn$SendThread.primeConnection(ClientCnxn.java:852)]
Socket connection established to HSlave1/192.168.100.23:2181, initiating session
[INFO ][2017/08/09 19:48:53931][org.apache.zookeeper.ClientCnxn$SendThread.onConnected(ClientCnxn.java:1235)]
Session establishment complete on server HSlave1/192.168.100.23:2181, sessionid = 0x15dc6cda23f0004, negotiated timeout = 30000
#三台服务器(HSlave1 HSlave2 HSlave3)上线, 每台服务器由一个程序建立节点
[HSlave3, HSlave2, HSlave1]
#客户端上线
client is working...
[HSlave3, HSlave2, HSlave1]
# 将HSlave2关机,客户端更新服务器列表
[HSlave3, HSlave1]
[INFO ][2017/08/09 19:53:09639][org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1098)]
Unable to read additional data from server sessionid 0x15dc6cda23f0004, likely server has closed socket, closing socket connection and attempting reconnect
[INFO ][2017/08/09 19:53:09898][org.apache.zookeeper.ClientCnxn$SendThread.logStartConnect(ClientCnxn.java:975)]
Opening socket connection to server HSlave3/192.168.100.25:2181. Will not attempt to authenticate using SASL (unknown error)
[INFO ][2017/08/09 19:53:09899][org.apache.zookeeper.ClientCnxn$SendThread.primeConnection(ClientCnxn.java:852)]
Socket connection established to HSlave3/192.168.100.25:2181, initiating session
[INFO ][2017/08/09 19:53:09903][org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1098)]
Unable to read additional data from server sessionid 0x15dc6cda23f0004, likely server has closed socket, closing socket connection and attempting reconnect
org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /servers
at org.apache.zookeeper.KeeperException.create(KeeperException.java:99)
at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
at org.apache.zookeeper.ZooKeeper.getChildren(ZooKeeper.java:1472)
at org.apache.zookeeper.ZooKeeper.getChildren(ZooKeeper.java:1500)
at chuangzhi.DistributedClient.getServerList(DistributedClient.java:57)
at chuangzhi.DistributedClient$1.process(DistributedClient.java:32)
at org.apache.zookeeper.ClientCnxn$EventThread.processEvent(ClientCnxn.java:522)
at org.apache.zookeeper.ClientCnxn$EventThread.run(ClientCnxn.java:498)
[INFO ][2017/08/09 19:53:10583][org.apache.zookeeper.ClientCnxn$SendThread.logStartConnect(ClientCnxn.java:975)]
Opening socket connection to server HSlave2/192.168.100.24:2181. Will not attempt to authenticate using SASL (unknown error)
[INFO ][2017/08/09 19:53:10585]
# 将HSlave2重新开机并开启zkService
[org.apache.zookeeper.ClientCnxn$SendThread.primeConnection(ClientCnxn.java:852)]
Socket connection established to HSlave2/192.168.100.24:2181, initiating session
[INFO ][2017/08/09 19:53:10586][org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1098)]
Unable to read additional data from server sessionid 0x15dc6cda23f0004, likely server has closed socket, closing socket connection and attempting reconnect
[INFO ][2017/08/09 19:53:11841][org.apache.zookeeper.ClientCnxn$SendThread.logStartConnect(ClientCnxn.java:975)]
Opening socket connection to server HSlave1/192.168.100.23:2181. Will not attempt to authenticate using SASL (unknown error)
[INFO ][2017/08/09 19:53:21842][org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1096)]
Client session timed out, have not heard from server in 11155ms for sessionid 0x15dc6cda23f0004, closing socket connection and attempting reconnect
[INFO ][2017/08/09 19:53:22629][org.apache.zookeeper.ClientCnxn$SendThread.logStartConnect(ClientCnxn.java:975)]
Opening socket connection to server HSlave3/192.168.100.25:2181. Will not attempt to authenticate using SASL (unknown error)
[INFO ][2017/08/09 19:53:22630][org.apache.zookeeper.ClientCnxn$SendThread.primeConnection(ClientCnxn.java:852)]
Socket connection established to HSlave3/192.168.100.25:2181, initiating session
[INFO ][2017/08/09 19:53:22632][org.apache.zookeeper.ClientCnxn$SendThread.onConnected(ClientCnxn.java:1235)]
Session establishment complete on server HSlave3/192.168.100.25:2181, sessionid = 0x15dc6cda23f0004, negotiated timeout = 30000
# HSlave2已经重新开机并开启zkService,但没有运行程序建立节点, 服务器列表没有改变
[HSlave3, HSlave1]
# 将HSlave1关机,客户端更新服务器列表
[HSlave3]
# 将最后一台HSlave3也关机,客户端凌乱了(HSlave2维持开机并连接zkService)
[INFO ][2017/08/09 19:55:57207][org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1098)]
Unable to read additional data from server sessionid 0x15dc6cda23f0004, likely server has closed socket, closing socket connection and attempting reconnect
[INFO ][2017/08/09 19:55:5850 ][org.apache.zookeeper.ClientCnxn$SendThread.logStartConnect(ClientCnxn.java:975)]
Opening socket connection to server HSlave2/192.168.100.24:2181. Will not attempt to authenticate using SASL (unknown error)
[INFO ][2017/08/09 19:55:5851 ][org.apache.zookeeper.ClientCnxn$SendThread.primeConnection(ClientCnxn.java:852)]
Socket connection established to HSlave2/192.168.100.24:2181, initiating session
[INFO ][2017/08/09 19:55:5852 ][org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1098)]
Unable to read additional data from server sessionid 0x15dc6cda23f0004, likely server has closed socket, closing socket connection and attempting reconnect
org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /servers
at org.apache.zookeeper.KeeperException.create(KeeperException.java:99)
at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
at org.apache.zookeeper.ZooKeeper.getChildren(ZooKeeper.java:1472)
at org.apache.zookeeper.ZooKeeper.getChildren(ZooKeeper.java:1500)
at chuangzhi.DistributedClient.getServerList(DistributedClient.java:57)
at chuangzhi.DistributedClient$1.process(DistributedClient.java:32)
at org.apache.zookeeper.ClientCnxn$EventThread.processEvent(ClientCnxn.java:522)
at org.apache.zookeeper.ClientCnxn$EventThread.run(ClientCnxn.java:498)
以下省略
- 用zookeeper体验监听服务器是否还活着
- 判断java对象是否还“活着”
- pthread_kill函数检测一个线程是否还活着的程序
- Android校验某个服务是否还活着代码
- 判断服务是否还活着的工具类
- 监听服务器是否运行
- 我们还活着
- 俺还活着
- 还活着哈。 ..:D
- C语言还活着
- 我还活着
- 我还“活着”!
- 如果你还活着!
- 冒个泡,还活着...
- 你们还活着吗
- 还活着,嘿嘿
- 我还活着
- 我还活着
- Java中的泛型
- 可变参列表
- 集成springmvc和mybatis环境的Javaweb基础框架,省去新手搭建繁琐环境的苦恼
- Kruskal算法:贪心+并查集=最小生成树
- Open-falcon:Agent源码
- 用zookeeper体验监听服务器是否还活着
- [LeetCode]402. Remove K Digits
- 单例模式的常见应用场景
- 状态模式
- 【转载】斯坦福大学机器学习——高斯判别分析
- chain code 编程
- TCP协议要点和难点全解
- Druid
- hdu3652 B-number(数位DP)