Skip to content

Latest commit

 

History

History
36 lines (18 loc) · 1.26 KB

工人、任务和指派关系.md

File metadata and controls

36 lines (18 loc) · 1.26 KB

在我们讨论worker和客户端的步骤之前,我们先来创建三个非常重要的父节点:/workers,/tasks和/assign。

[zk: localhost:2181(CONNECTED) 0] create /workers ""

Created /workers

[zk: localhost:2181(CONNECTED) 1] create /tasks ""

Created /tasks

[zk: localhost:2181(CONNECTED) 2] create /assign ""

Created /assign

[zk: localhost:2181(CONNECTED) 3] ls /

[assign, tasks, workers, master, zookeeper]

[zk: localhost:2181(CONNECTED) 4]

这三个节点都是持久化的节点,并不包含数据。在本例中我们使用这些节点来告诉我们哪些worker是可用的,还有哪些任务等着被分配,同时分配给worker的任务。

在现实的应用中,这些节点要么是被主进程在分配任务之前创建的,要么是某些引导步骤创建的。不论它们是如何创建的,一旦它们被创建,主节点就需要监视孩子节点/workers和/tasks的变化:

[zk: localhost:2181(CONNECTED) 4] ls /workers true

[]

[zk: localhost:2181(CONNECTED) 5] ls /tasks true

[]

[zk: localhost:2181(CONNECTED) 6]

注意到我们在ls命令中使用了可选参数true,像我们之前在master上使用stat一样。true参数在本例中设置了相应节点的孩子节点变化的监视器。