1.基本介绍
通知/协调机制通常有两种方式。
- 系统调度模式:操作人员发送通知实际是通过控制台改变某个节点的状态,然后Zookeeper将这些变化发送给注册了这个节点的Watcher的所有客户端。
- 工作汇报模式:这个情况是每个工作进程都在某个目录下创建一个临时节点,并携带工作的进度数据。这样汇总的进程可以监控目录子节点的变化获得工作进度的实时的全局情况。
总的来说,利用Zookeeper的watcher注册和异步通知功能,通知的发送者创建一个节点,并将通知的数据写入的该节点;通知的接受者则对该节点注册watch,当节点变化时,就算作通知的到来。
场景实践
通过上面的说明,其实实现还是非常容易的。看下关键的几个地方:
g_monitor_child
:变量等于0标识只监控节点,等于1标识监控所有子节点。show_notify(zh,g_path);
:打印接受到的通知