Zookeeper分布式过程协同技术 - 概念及基础 (2)

持久znode是一种非常有用的znode,可以通过持久类型znode为应用保存一些数据,即使znode的创建者不再属于应用系统时,数据也可以保存下来而不丢失。例如,在主-从模式中,需要保存从节点的任务分配情况,即使分配任务的主节点已经崩溃了。

一个临时znode,在以下两种情况会被删除:

当创建该znode的客户端的会话因超时或主动关闭而中止时。

当某个客户端(不一定是创建者)主动删除该节点时。

注:因为临时的znode在其创建者的会话过期时被删除,所以我们现在不允许临时节点拥有子节点。

有序节点

一个有序znode节点被分配唯一一个单调递增的整数。当创建有序节点时,一个序号会被追加到路径之后。例如,客户端创建一个有序znode节点,其路径为/tasks/task-,那么该znode节点为/tasks/task-1。有序znode通过提供了创建具有唯一名称的znode的简单方式。同时也通过这种方式可以直观地查看znode的创建顺序。

Znode一共有四种:持久节点、临时节点、持久有序节点,临时有序节点。

监视与通知

Zookeeper提供基于通知的机制提供对节点的监视能力。客户端向Zookeeper注册需要接收通知的znode,通过对znode的设置监视点(watch)来接收通知。监视点是一个单次触发的操作,每次设置只会触发一次。为了接收多个通知,客户端必须在每次通知后设置新的监视点。在设置新监视点前客户端会先读取znode中的数据,所以不同担心会错过状态的变化。

Zookeeper可以定义不同类型的通知,如监控znode的数据变化、监控znode子节点的变化、监控znode的创建或删除。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwgfyw.html