Zookeeper在集群中的作用
来源:互联网 发布:国际软件学院前身 编辑:程序博客网 时间:2024/05/29 17:30
Zookeeper是什么
- 是一个为用户的分布式应用程序提供协调的服务
- 也是为别的分布式程序服务的
- 本身也是一个分布式程序(只要半数以上节点存储,就能正常提供服务)
集群里解决的问题:
Zookeeper上面刚提到,它是为别的分布式程序服务的。所以在高可用的也是用来服务,当然还有别的作用。Zookeeper是普通集群转变为高可用的重要手段,解决了单点故障的问题。ZooKeeper Server是奇数个的,是因为zookeeper中的选举机制,必须选举出超过一半以上的结果,来决定谁是Mster,用来防止脑裂
zookeeper的数据结构
- 每个子项目如NameSrevice都被称为znode,zondervan是被它所在的路径唯一标识为NameService/Server1
- znode可以有子节点,并且每个中的可以存储数据
- znode是由版本的,每个znode中才能出的数据可以有多个版本也就是一个访问路径中可以存储多份数据
- znode可以是临时节点,一旦创建了znode的客户端与服务器失去链接,这个znode也会自动删除
- zookeeper可以关联所有的slaver,当一个改变时所有slaver都会变化
zookeeper用javaAPI创建节点,和shell创建
import org.apache.zookeeper.*;import org.junit.After;import org.junit.Before;import org.junit.Test;import java.io.IOException;public class ZKchuangjian { private ZooKeeper zooKeeper; private final int SESSION_TIMEOUT=30000; //超时时间 private final String path="/info-node"; //节点名称 @Before //连接到ZK public void init() throws IOException { zooKeeper=new ZooKeeper("hadoop-node3", SESSION_TIMEOUT, new Watcher() { @Override public void process(WatchedEvent watchedEvent) { //判断是否有这个节点如果有则删除 if(watchedEvent.getType()== Event.EventType.NodeDeleted){ System.out.println("节点被删除了"); try { createNode(); } catch (KeeperException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } } } }); } public void createNode() throws KeeperException, InterruptedException { Stat stat = zooKeeper.exists(path,true); //if判断没有则创建 if(stat == null){ System.out.println("开始创建节点"); zooKeeper.create(path,"test".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE,CreateMode.PERSISTENT); //PERSISTENT表示永久,EPHEMERAL_SEQUENTIAL表示临时 System.out.println("节点创建成功"); zooKeeper.exists(path,true); Thread.sleep(1000); }else { System.out.println("节点存在"); } } //断开连接 @After public void close() throws InterruptedException { zooKeeper.close(); } //run方法 @Test public void run() throws KeeperException, InterruptedException, IOException { createNode(); System.in.read(); }}
① 创建顺序节点
使用 create -s /zk-…… 命令创建zk-test顺序节点
② 创建临时节点
使用 create -e /zk-…… 命令创建zk-temp临时节点
③ 创建永久节点
使用 create /zk-……命令创建zk-permanent永久节点
删除节点delete /zk-…….
阅读全文
0 0
- Zookeeper在集群中的作用
- zookeeper在hbase集群中的作用
- 浅谈zookeeper的在hbase集群中的作用
- Zookeeper在hbase集群的作用
- Zookeeper在hbase集群的作用
- zookeeper在Dubbo中的作用
- zookeeper在kafka中的作用
- zookeeper在dubbo中的作用
- zookeeper在kafka中的作用
- zookeeper在storm集群中的应用
- zookeeper在分布式应用中的作用
- 转载-zookeeper在kafka中的作用
- zookeeper的watcher机制及其在集群管理(sheepdog)中的使用
- Storm和Zookeeper集群搭建及在java项目中的使用
- 在CentOS上安装ZooKeeper集群
- 在CentOS上安装ZooKeeper集群
- 在CentOS上安装ZooKeeper集群
- MapReduce在Zookeeper集群上鉴权失败
- JAVA利用HttpClient进行POST请求(HTTPS)
- Java—遍历集合的N种方式总结&Collections工具类
- 百年监狱因犯人太少关门,改造成小清新咖啡馆,差点被游客挤爆!
- R9 STM32之ADC—电压采集
- div的增高增宽变色隐藏重置
- Zookeeper在集群中的作用
- onCreateOptionsMenu不执行问题
- mybatis 的mapper文件中的$和#的区别
- react-native 分割线
- 对于Android开发中添加网络请求方式的浅解
- 关于 mysql 性能优化
- 实时录音监听 navigator.mediaDevices.getUserMedia()
- css派生选择器、id选择器、类选择器、属性选择器
- SpringBoot配置详情