使用Zookeeper与Thrift构建Ha的LogServer

zookeeper简介

     ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。目前zookeeper被应用于hadoop/hbase中进行节点的管理,通过zookeeper你可以很方便的开发出一些分布式控制的工具,比如分布式lock, barrier,countDown , Semaphore等,甚至有人使用zookeeper开发了一个分布式Collections.

zookeeper客户端     

      我们构建分布式logserver系统,主要使用zookeeper的目录服务,zookeeper本身有api可供我们来使用zookeeper的一些特性,但是zookeeper的api接口太生硬了,不方便使用,但这么强大的zookeeper肯定有很多公司在使用,他们一定会发现现有api的问题,肯定会出不少优秀的api,于是我们找到了Curator,Curator是Netflix开源的一套ZooKeeper客户端框架. Netflix在使用ZooKeeper的过程中发现ZooKeeper自带的客户端太底层, 应用方在使用的时候需要自己处理很多事情, 于是在它的基础上包装了一下, 提供了一套更好用的客户端框架。

Curator主要解决了三类问题:

    封装ZooKeeper client与ZooKeeper server之间的连接处理;

    提供了一套Fluent风格的操作API;

    提供ZooKeeper各种应用场景(recipe, 比如共享锁服务, 集群领导选举机制)的抽象封装.

    Curator实现的zookeeper的特性有如下这些:

使用Curator

       使用Curator向zookeeper注册logserver,具体代码见logserver的ZooKeeperManager类中的init方法:

   

使用Curator向zookeeper获取注册到zookeeper中的logserver信息,具体代码见logserver项目ZooLogClient类中的init方法:

具体总结下来,就是使用curator向zookeeper注册logserver,log的客户端再使用curator获取注册的zookeeper信息,当某台logserver当机,zookeeper能通知到log的客户端,以重新获取新的logserver服务。

 

 

转载于:https://www.cnblogs.com/51cto/archive/2012/12/14/zookeeper_curator.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值