Curator是一个Zookeeper的客户端库,是一个分布式协调服务,来帮助你管理zookeeper的连接,减少使用zookeeper的复杂性。 它包含了一套高级API和通用的utilities,提供了一些recipes(如lock,barriers和cache等)和操作(如create, delete, getData等), 这些都使得编写的应用可以更加鲁棒。

Read More

Zookeeper session

Zookeeper client通过创建一个session与Zookeeper server通信,如果与某一台server的连接断了,session会转移到与另一台server建立的连接。通过org.apache.zookeeper.Zookeeper类构建zookeeper session

Zookeeper(
    String connectString,   // servers address e.g.: "127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183"
    int sessionTimeout,     // session timeout in millisecond
    Watcher watcher         // 用来接收session event, watcher是接口,需要传递一个实现接口的实例化object
)

Read More

一般设计一个分布式协同服务都会提供一组primitives的列表,对于每个primitive暴露一些接口来创建实例,比如分布式锁可以作为一个primitive, 它暴露了一些接口如create, acquire, release等。这种设计会存在一些问题:1)扩展性差,需要提供大量的primitives,还要不断扩展API; 2)灵活性差,对于不同应用适用性会差的较多

Read More