zk - zookeeper主节点、从节点、客户端三者之间的交互

300 阅读1分钟

世界上并没有完美的程序,但是我们并不因此而沮丧,因为写程序就是一个不断追求完美的过程。

  1. zk是以树状结构进行存储的,树的结点znode分为持久节点、临时节点、顺序节点、临时顺序节点

  2. zk集群中有主节点和从节点,主节点的主要功能是分配任务,从节点的主要功能是执行任务

  3. 首先,主节点会创建三个持久节点:/workers、/tasks、/assing:

    1. /workers用来存储从节点
    2. /tasks用来发布任务
    3. /assing用来接收任务
  4. 当从节点连接到主节点后,会在/workers中创建一个代表从节点的临时节点,并在/assing中创建一个任务监听节点,并设置任务监听器

  5. 当客户端连接到主节点后,会在/tasks中发布任务并设置监听器等待执行结果

  6. 当主节点监听到客户端发布的任务以后,会访问/workers节点,从中选取可以执行该任务的从节点,并在/assing中通知选中的从节点执行任务

  7. 当从节点在/assing中监听到有任务要执行时,就会执行分配给自己的任务,当任务执行完成后会在/tasks中返回任务的执行状态

  8. 客户端监听到从节点执行任务的结果,从而获取

  9. 至此,整个调用过程就结束了

在这里插入图片描述