前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >zookeeper第一弹!

zookeeper第一弹!

作者头像
萌兔IT
发布2019-07-25 17:07:20
3400
发布2019-07-25 17:07:20
举报
文章被收录于专栏:萌兔it萌兔it

Hello,大家好,我是兔君哦!今天主要介绍一下zookeeper,以及相关功能和数据结构。后续还会继续分享。

zookeeper定义

zookeeper是一个开源的分布式应用程序协调服务器,为分布式服务提供一致性服务。其主要功能如下

(1)配置维护

当今互联网公司为了提升系统吞吐量会部署成百上千台服务节点。但是这就为后期服务的配置文件的维护带来了不便。通常这些配置都是相同的,因而我们可以zookeeper的订阅/发布模型。当我们需要修改服务配置时,我们仅仅修改zookeeper相关节点信息,而每个服务节点又通过watcher机制实时获取节点变化的数据,从而修改本地的配置信息。

(2)域名服务

当今互联网服务都会采用去中心化的架构思想,即将原来的一整个项目拆分为多个服务,从而实现解耦,即微服务。但是这就带来了一些问题,一般一整个项目分为多个服务,而每个服务又由多个节点组成,这时一个请求过来具体哪个节点负责处理这就成为了难题。我们通过zookeeper维护一个服务地址映射表,我们仅仅知道服务名称就好,具体由哪个节点处理交给zookeeper,由相应的算法确定一个具体节点。

(3)分布式同步

在微服务系统中,我们经常会遇到一个请求由多个服务调用组成而且有前后顺序。这是我们就可以利用zookeeper的watcher机制,这些服务同时监听一个zNode,当节点的数据更改为某一数值时,则由相应的服务处理,这样就可以保证了顺序性。

(4)集群管理

所谓集群管理,包括集群监控与集群控制两大块,前者侧重对集群运行时状态的收集,后者则是对集群进行操作与控制。而zookeeper可以很好的做到这一点。

zookeeper的数据结构

(1)数据模型

它的结构很像数据结构中的树,也很像文件系统的目录,树是由节点组成的,同样Zookeeper也是由节点组成的,这种节点的名字叫做Znode,但是Zookeeper的节点引用方式是路径引用,类似于文件系统 例如:/ 动物 / 猫。这样每个节点都拥有唯一的路径。

(2)Znode结构

1)data:Znode存储的数据信息。

2)ACL:Znode的访问权限,比如哪些人或者IP可以访问本节点。

3)stat:Znode的元数据,比如事务ID,版本号,时间戳,数据大小等信息。

4)child:当前节点子节点的引用,类似二叉树的左孩子右孩子。

ps:每个Znode节点最大不超过1MB。

这是兔君的第一次分享,大家喜欢请关注+点击好看呦!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 萌兔it 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档