zookeeper实现主从结构原理

发布时间:2021-08-25 23:07:56 作者:chen
来源:亿速云 阅读:540

本篇内容主要讲解“zookeeper实现主从结构原理”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“zookeeper实现主从结构原理”吧!

zookeeper实现主从结构原理

(如果看不清楚,保存到本地打开)

以下文字只是时序图的解释说明,重点是看懂时序图。

为了避免主节点/从节点和zk的节点概念看着乱,以下就用Master/Slave称呼了。 ### 1 选Master 系统启动后,所有slave都会尝试在zk树上创建/master节点,创建成功的节点成为Master角色。 然而Master可能会崩溃,所以其他slave要继续监视/master节点。当Master挂掉后,slave重新选举出新的Master(这里的选举就是抢占)。这就要求服务节点挂掉后,/master节点随之删除,以便能让其他slave接到通知,所以master为必须为临时节点

2 Master的准备工作

创建三个父节点/works 、/tasks、 /assign 。(也可以由一个引导程序建) 这三个父节点都是永久节点,且不包含任何数据,作为目录节点存在。其子节点分别用于存储可用的slave、任务信息、向从节点分配任务。 创建完成后,Master要监视/works和/tasks两个节点,以便能感知到由哪些slave当前可用,当前有新任务需要分配。

3 Slave的准备工作

slave向zk注册自己的信息,让zk通知Master“我上线了,有新任务分配给我!” 同样,Master也需要及时知道有哪些slave挂了,所以slave在/works目录下创建的必须是临时节点。 然后,slave还需要在/assign目录下创建一个节点/work1,并监视这个节点等待任务分配。

create -e /assign/work1 "work1_ip"
ls /assign/work1 true

4 客户端提交任务

客户端在/assign下创建一个节点,包含任务信息,即发布一个任务。 并监视该节点,获取任务完成情况

create -s /task/task- "cmd"
ls  /task/task-000 true

5 Master分配任务

任务发布后,监视了/assign的Master就会收到新任务通知。 然后Master查看/works下的可用slave,从中选一个分配给任务(在slave的目录下新增一个任务节点)

create -e /assign/work1/task-000

6 Slave开始干活

slave收到新任务分配通知后,就开始执行任务。

ls /assign/work/task-000  //查看任务信息

然后完成后,添加执行状态,通知客户端。

create /tasks/task-000/status "done"
### 7 客户验收结果

客户端查看任务节点信息,查看任务状态

get /tasks/task-000

以上! 只是描述了用zk实现主从结构的一般原理。

画图挺累的,转载请说明出处。要原图邮箱吧。 ```

内容整理自《O'REILLY Zookeeper》一书

到此,相信大家对“zookeeper实现主从结构原理”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

推荐阅读:
  1. mysql主从原理
  2. Zookeeper原理

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

zookeeper

上一篇:Nginx几种负载均衡算法及配置

下一篇:Linux的内存分页管理方法

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》