zookeeper
zkp_java
这个作者很懒,什么都没留下…
展开
-
[zookeeper] zookeeper系列一:zookeeper基本介绍
zppkeeper是什么zookeeper是一个高性能、开源的分布式应用协调服务,它提供了简单原始的功能,分布式应用可以基于它实现更高级的服务,比如实现同步(分布式锁)、配置管理、集群管理。它被设计为易于编程,使用文件系统目录树作为数据模型。服务端使用Java语言编写,并且提供了Java和C语言的客户端。 note:分布式的意味着由多台计算机构成的集群,每台计算机之间通过网络通信,这些...原创 2018-09-12 00:37:01 · 4421 阅读 · 0 评论 -
[zookeeper]zookeeper系列四:分布式系统的理解
分布式系统集群的特点集群中所有节点维护的数据要一致所有节点都可以提供相同的业务功能(不一定是在同一时刻提供)集群需要保障系统的高可用,某个节点宕机不会影响服务集群环境下如何保障数据一致性集群环境下有两张方式可以保障数据一致性:数据复制和集中存储。数据复制:先向单节点写入,再复制到其他节点,zookeeper就是这样实现的;或者多节点同时写入,但只适合多节点写入的数据不是相同数据...原创 2018-09-18 00:25:37 · 993 阅读 · 0 评论 -
[zookeeper]zookeeper系列五:zookeeper自带客户端原生api的使用
引入依赖zookeeper中自带一个客户端,只需要引入zookeeper,在build.gradle中添加以下依赖即可:compile ('org.apache.zookeeper:zookeeper:3.4.13')创建zookeeper会话org.apache.zookeeper.ZooKeeper类的构造方法用于创建zookeeper客户端与服务端之间的会话。该类提供了如下几个构造...原创 2018-09-18 00:51:57 · 1459 阅读 · 0 评论 -
[zookeeper] zookeeper系列二:zookeeper持久节点、临时节点及ACL
znode回顾我们回顾zookeeper中数据节点(znode)相关定义,然后进行实验验证。 znode相关定义如下:znode是zookeeper树形结构中的数据节点,用于存储数据;zookeeper中有两种类型的节点: 持久节点(PERSISENT):一旦创建,除非主动调用删除操作,否则一直存储在zk上;临时节点(EPHEMERAL):与客户端会话绑定,一旦客户端会话失效,这...原创 2018-09-14 22:48:36 · 15404 阅读 · 1 评论 -
[zookeeper]zookeeper系列三:zookeeper中watcher的使用及原理
watcher解决的问题在进入watcher之前我们先试想在应用服务器集群中可能存在的两个问题:因为集群中有很多机器,当某个通用的配置发生变化后,怎么让自动的让所有服务器的配置统一生效?当集群中某个节点宕机,如何让集群中的其他节点知道?为了解决这两个问题,zookeeper引入了watcher机制来实现发布/订阅功能,能够让多个订阅者同时监听某一个主题对象,当这个主题对象自身状态...原创 2018-09-15 10:49:31 · 13647 阅读 · 2 评论 -
[zookeeper]zookeeper系列六:zookeeper开源客户端curator
zookeeper原生api的不足zookeeper原生api存在以下不足之处:连接的创建是异步的,需要开发人员自行编码实现等待;连接没有自动的超时重连机制;Zk本身不提供序列化机制,需要开发人员自行指定,从而实现数据的序列化和反序列化;Watcher注册一次只会生效一次,需要不断的重复注册;Watcher本身的使用方式不符合java本身的术语,如果采用监听器的方式,更容易理解;不...原创 2018-11-24 22:52:45 · 1083 阅读 · 0 评论 -
[zookeeper]zookeeper系列七:zookeeper选举及数据一致性
ZAB协议ZAB(Zookeeper Atomic Broadcast)协议,即Zookeeper原子消息广播协议,协议内容大致如下:所有事物的请求必须由全局唯一的服务器来协调处理,这样的服务器被称为Leader服务器,而余下的其他服务器则称为Follower服务器,Leader服务器负责将一个客户端的事物请求转换成一个事物Proposal(提议),并将该Proposal分发给集群中的所有F...原创 2018-11-26 08:52:44 · 830 阅读 · 1 评论 -
[zookeeper]zookeeper系列八:zookeeper Leader选举源码分析
Zookeeper启动的main方法是org.apache.zookeeper.server.quorum.QuorumPeerMain类的main方法:public static void main(String[] args) { QuorumPeerMain main = new QuorumPeerMain(); try { mai...原创 2018-12-09 19:12:27 · 371 阅读 · 0 评论