加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

ZooKeeper 道理与处事器集群陈设

发布时间:2019-07-27 05:45:56 所属栏目:业界 来源:kefeng.wang博客
导读:ZooKeeper 是大型漫衍式体系中靠得住的和谐体系,它以树状布局存储数据,以率领推举和信息同步机制担保了集群的高可用性,以变乱关照机制帮忙变乱订阅者实时捕捉数据的变革,可帮忙实现 Dubbo、Kafka 等架构。本文以 CentOS 和 Windows 为例,总结了 ZooKeep
副问题[/!--empirenews.page--]

ZooKeeper 是大型漫衍式体系中靠得住的和谐体系,它以树状布局存储数据,以率领推举和信息同步机制担保了集群的高可用性,以变乱关照机制帮忙变乱订阅者实时捕捉数据的变革,可帮忙实现 Dubbo、Kafka 等架构。本文以 CentOS 和 Windows 为例,总结了 ZooKeeper 集群的陈设操纵,并以自带的剧本呼吁操纵其数据。

ZooKeeper 道理与处事器集群陈设

1.概述

ZooKeeper 是 Hadoop 的一个子项目,是大型漫衍式体系中靠得住的和谐体系。漫衍式应用措施以此实现更高级此外处事,可用于漫衍式体系的设置维护、名字处事、漫衍式同步、组处事等:

用于 Dubbo: 作为设置中心;

用于 Kafka: 作为 Broker/Producer/Consumer 共享的设置中心。

官网首页: https://zookeeper.apache.org/

官网文档: https://zookeeper.apache.org/doc/current/

1.1 ZAB协议

ZooKeeper 道理与处事器集群陈设

集群间通过 ZAB(ZooKeeper Atomic Broadcast)协议保持数据同等性,该协议包罗两个阶段:

1.1.1 率领推举(Leader Election)

推举出一个 Leader(全部写操纵传送给 Leader),其他呆板被称为 Follower;

当前 Leader 瓦解或失去大大都 Follower 后,会推举出新的 Leader;

1.1.2 信息同步(Atomic broadcast)

用于同步 Leader 与 Follower 之间的信息,担保数据同等。

1.2 内部道理

https://zookeeper.apache.org/doc/current/zookeeperOver.html

存储方法与尺度文件体系很是相似,每个节点称作 znode,自己包括数据,还可以拥有子节点。

客户端以TCP毗连一台节点,该节点妨碍时,客户端会切换至其他节点。

客户端可以订阅某些节点的变乱(watcher机制),当节点内容或其子节点有变革时,客户端会收到关照。

ZooKeeper 道理与处事器集群陈设

  • 高机能:多读少写的环境下,速率很快;存储于内存中,并有耐久存储中的事宜日记和快照;
  • 高可用性(无中心化布局可停止单点妨碍): 个体节点妨碍不影响整体行使;
  • 监督机制: 客户端可以监督一个结点(node),当结点断开或有修改时,客户端会收到关照;
  • 次序同等性: 来自客户端的更新将凭证它们发送的次序举办应用。
  • 原子性: 担保数据完备、同等,更新乐成或失败,没有部门功效。
  • 单体系映像: 无论处事器毗连到哪个处事器,客户端城市看到沟通的处事视图。
  • 靠得住性: 一旦更新被应用,它将一向一连到客户包围更新。
  • 实时性: 体系的客户概念在必然的时刻范畴内担保是最新的。

1.3 体系要求

ZooKeeper 以 Java 版本运行,Java 版本要求为 1.6+;

支持的操纵体系包罗: GNU/Linux, Solaris, FreeBSD, Windows。

2.Linux 下安装

https://zookeeper.apache.org/doc/current/zookeeperStarted.html

2.1 下载并解压(35M)

  1. # https://archive.apache.org/dist/zookeeper/ 
  2. # https://archive.apache.org/dist/zookeeper/zookeeper-3.4.11/ 
  3. wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.11/zookeeper-3.4.11.tar.gz 
  4. sudo rm -rf /opt/zookeeper-3.4.11 
  5. sudo tar -zxf zookeeper-3.4.11.tar.gz -C /opt 
  6. sudo chown -R root:root /opt/zookeeper-3.4.11 
  7. sudo rm -rf /opt/zookeeper-3.4.11/bin/*.cmd 

2.2 配置情形变量

  1. ## sudo vim /etc/profile ## 全部用户有用 
  2. export ZOOKEEPER_HOME=/opt/zookeeper-3.4.11 
  3. export PATH=$PATH:$ZOOKEEPER_HOME/bin 

文件生涯后,Linux用户从头登录后见效。

2.3 筹备目次与设置文件

  1. # sudo vim $ZOOKEEPER_HOME/bin/zkInit.sh 
  2. # sudo -E sh $ZOOKEEPER_HOME/bin/zkInit.sh 
  3. for INDEX in {1..3}; do 
  4.     sudo rm -rf $ZOOKEEPER_HOME/{data,logs}/$INDEX 
  5.     sudo mkdir -p $ZOOKEEPER_HOME/{data,logs}/$INDEX 
  6.     echo $INDEX | sudo tee $ZOOKEEPER_HOME/data/$INDEX/myid > /dev/null 
  7.  
  8.     # zoo.cfg 参考: grep -v "^#" $ZOOKEEPER_HOME/conf/zoo_sample.cfg 
  9.     cat > $ZOOKEEPER_HOME/conf/zoo-$INDEX.cfg << EOF 
  10. tickTime=2000 ## ZooKeeper 的最小时刻单元(ms) 
  11. initLimit=10 ## 投票推举新 leader 的初始化时刻(以 tickTime 为单元) 
  12. syncLimit=5 ## Leader 检测 Follower 可用性心跳的超时时刻(以 tickTime 为单元) 
  13. clientPort=218$INDEX ## 客户端用来毗连 ZooKeeper 的端口 
  14. dataDir=$ZOOKEEPER_HOME/data/$INDEX ## 数据目次(存储内存数据库快照) 
  15. dataLogDir=$ZOOKEEPER_HOME/logs/$INDEX ## 日记目次(存储事宜日记) 
  16. server.1=localhost:2281:2291 
  17. server.2=localhost:2282:2292 
  18. server.3=localhost:2283:2293 
  19. EOF 
  20. done 

个中的 clientPort=218$INDEX 是提供应客户端毗连的端口(2181,2182,2183);

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读