zookeeper 介绍

写在前面

最开始认识zookeeper是在工作一年左右的时候,当时项目中引进了kafka,于是乎就按照网上kafka的“helloworld”搭建了一套测试环境,kafka的分布式管理是通过zookeeper实现的,就这样算是和zookeeper初相识,之后在网上搜罗了一堆关于zk的文章,看的也是云里雾里!

期间领导也曾让我尝试看能不能把我们已有的项目通过zk搞成分布式的,当时感觉好难,于是乎便用LVS+keepalive做的无状态的集群,也算是实现了领导的意图!

zookeeper 介绍

又见zookeeper

一年多之后,接触的东西越来越多,对技术的研究有了一定深度之后,比如:kafka、Hbase以及我司自己搭建的基于thrift+zk实现的分布式集群,对zk便有了进一步的认识,现在来看,发现zk并不是那么的神秘,其原语集非常的简单,数据结构也很容易理解,当然zk本身的高可用以及涉及到事务及数据的版本控制略有复杂,但实际应用中,这些内容似乎也并不是拦路虎,当遇见的时候,去研究,发现也并不是很难理解,最起码比研究数据库的事务、锁等要简单一点。

zookeeper 介绍

zookeeper的使用

本质上来讲,zookeeper就是存储数据用的,特点是只能存储小数据,一般不能超过1M,另一个关键特点,也是其优势所在,就是zk本身实现了高可用,也就是使用zk存储数据,容错性特别强。

在这里为了大家尽快上手,就不对zk的高可用以及容错性等原理做介绍了,直接介绍zk的原语集;

  1. 创建/删除节点

  2. 遍历节点(类似于树的遍历)

  3. 获取节点数据

  4. 订阅节点的变化(如节点的增删)

  5. 订阅节点数据的变化

对于想学习zk的各位猿媛,建议首先了解一下zk在kafka、Hbase等技术中是怎样使用的,并发挥了怎样的作用,这样认识zk会比较快!

关于zk客户端可以用多种语言实现,小编主攻java,相关的java源代码可以访问:letsgogo.top网站获取源码!

zookeeper 介绍

相关文章推荐:

kafka官网译文

互联网架构中三种常用的缓存技术

软件开发大神和菜鸟差距在哪里

三年JAVA WEB开发应该具备的技术栈

原文地址:https://www.cnblogs.com/tengpan-cn/p/7193304.html