Zookeeper
• Zookerper是高性能、可扩展的分布式应用程序协调服务框架。使用java编写,支持java和C两种编程语言。
典型的应用场景:
• 统一命名服务(name service)
• 配置管理(configuration management)•leader election
• 共享锁(Locks)
• 队列管理
• 组成员关系(group membership)
设计目的
-
最终一致性:client不论连接那个server,展示给它的都是同一视图。
实时的一致性可以由客户端通过调用sync()方法
-
原子性:更新操作要么成功要么失败
-
可靠性:一旦一个更新操作被应用,那么在client再次更新它之前,它的值将不会改变
-
顺序一致性:全局有序,client的更新顺序与他们的发送顺序一致。即如果在一台服务器上消息a在消息b前发布,则在所有Server上消息a都将在消息b前被发布
数据模型
类似于文件系统,像树一样的层级结构,树中的节点称为Znode,
可存储数据,并关联一个ACL
• Znodes可以是文件也可以是目录(允许有子节点)•存数的数据有限,不能超过1M
• 路径只能是绝对路径,
• 必须以『/』开头,
• 不能包含.或..