Server集群的监控方案

有多个server需要监控他们的是否宕机,普通的方式如下:

1.维护一个心跳,如5s,每5s给server发一个数据包,采用ping等方式

2.如果ping不到那么预警报错

缺点:

主动去ping,但是有时候为了安全起见是不开放ping的因此会失败

具体方案:

可以采用zookeeper来替换这种方式

如结点/servers/下面存放的是一些server,如server1的ip为ip1

那么此server对应的结点为

/server/ip1

每个server启动服务的同时注册一个服务到zookeeper集群中去,代码如下:

Java代码  收藏代码
  1. public static void registryIp() throws IOException, KeeperException, InterruptedException {  
  2.     final ZooKeeper zk = new ZooKeeper("127.0.0.1"3000null);  
  3.     ......  
  4.        
  5. }  

 此时创建的是EPHEMERAL,如果机器宕掉那么此时此server对应的/servers/localip结点就会不存在,那么可以通过监控/servers

父节点来达到对所有server的监控

posted on 2013-09-03 12:51  5彩石头  阅读(136)  评论(0)    收藏  举报

导航