05-13学习总结

zookeeper

zookeeper是一个开源的分布式协调服务

特性:顺序一致性,原子性,可靠性,单一视图,最终结果一致性(实时性)

zookeeper的读请求可以被服务器中任一节点处理,写请求需要全部服务器一致同意,因此在大数量集群模式下,读请求吞吐量高于写请求吞吐量。

zookeeper提供了文件系统和通知机制

文件系统:提供了多层级的节点命名空间,它与文件系统的不同之处在于,他的key也可以存储相关内容,但对于大小有限制,不大于1m,因为它为了提高吞吐量和效率,将目录数据结构存储在内存中。

如何保持主从一致:通过它的原子广播机制实现,该机制实现的协议为zab,该机制有两种模式,恢复模式和广播模式

恢复模式:只有在主服务器崩溃或系统刚启动时使用该模式,在这个模式下主从服务器会进行同步,直到主服务器和大多数的从服务器保持一致。

广播模式:在恢复模式之后进入该模式,此模式为常态模式

四种节点:

1持久化节点-该节点不会自动删除,只有手动删除

2临时节点-该节点生命周期与客户端会话绑定,会话结束时删除

3持久化顺序节点-与一一样但增加一个顺序属性,在名字末尾增加一个由父节点维护自增整型变量

4临时顺序节点-与2一样但增加一个顺序属性,在名字末尾增加一个由父节点维护自增整型变量

zookeeper消息变更通知-watcher

客户端在服务端注册一个watcher,当服务端某事件触发该watcher时服务端向客户端发送一个消息,包含消息通知和事件类型,会使客户端进行相应的业务更新。

机制-客户端注册watcher,服务端处理watcher,客户端回调watcher

watcher特性:

1一次性-触发后就会删除

2简易性-注册时他不会发送watcher实体到服务器,而是通过一个boolean属性标识

3客户端串行执行-watcher消息依次执行

4异步通知-服务端触发watcher并发送事件到客户端不是同步的,因此只能保证最终结果一致性,无法保证实时一致性

5注册-调用getdata,getchildren,exists方法

6触发-watchercreate,delete,setdata

7watcher在连接到一个新的服务器时任何一个事件都会触发他,在断连后接收不到消息,再次重连后如有必要可在服务端重新注册全部注册过的watcher,只有在断连时创建,同时恢复连接之前删除watcher会导致消息消失。

你可能感兴趣的:(05-13学习总结)