1. zookeeper分布式和谐者

打印 上一主题 下一主题

主题 576|帖子 576|积分 1728

一、zookeeper介绍

作用:分布式系统中,用于和谐者、集群管理、设置管理、命名服务, 解决分布式系统中划一性的题目
开源、Apache组件
1、软件计划架构

1.1 单体架构

所有的业务模块集成在一起的,倒霉于项目更新、维护、扩展
1.2 SOA架构/分布式

根据业务的功能模块将完备的项目划分成多个独立模块,便于扩展、更新
须要提供集中式的服务管理、设置管理、集群管理、数据划一性功能
拆分粒度粗
1.3 微服务架构

相对于SOA架构来,拆分粒度细
二、zookeeper角色

1、角色



  • leader
    主角色
    处理数据
    维持与follower的心跳,吸收处理follower的消息
  • follower

2、选举机制

目前有5台服务器,每台服务器均没有数据,它们的编号分别是1,2,3,4,5,按编号依次启动,它们的选择举过程如下:
服务器1启动,给自己投票,然后发投票信息,由于其它呆板还没有启动以是它收不到反馈信息,服务器1的状态不停属于Looking(选举状态)。
服务器2启动,给自己投票,同时与之前启动的服务器1交换结果,由于服务器2的编号大以是服务器2胜出,但此时投票数没有大于半数,以是两个服务器的状态依然是LOOKING。
服务器3启动,给自己投票,同时与之前启动的服务器1,2交换信息,由于服务器3的编号最大以是服务器3胜出,此时投票数恰好大于半数,以是服务器3成为领导者,服务器1,2成为小弟。
服务器4启动,给自己投票,同时与之前启动的服务器1,2,3交换信息,尽管服务器4的编号大,但之前服务器3已经胜出,以是服务器4只能成为小弟。
服务器5启动,后面的逻辑同服务器4成为小弟。
3、znode类型

zookeeper的节点同一叫做znode
根据节点的生命周期,znode可以分为4种类型,分别是持久节点(PERSISTENT)、持久顺序节点(PERSISTENT_SEQUENTIAL)、临时节点(EPHEMERAL)、临时顺序节点(EPHEMERAL_SEQUENTIAL)
三、zookeeper集群部署

1、环境规划

192.168.140.10 node01 jdk/zookeeper
192.168.140.11 node02 jdk/zookeeper
192.168.140.12 node03 jdk/zookeeper
2、安装jdk

  1. [root@node01 ~]# tar xf jdk-8u91-linux-x64.tar.gz -C /usr/local/
  2. [root@node01 ~]# vim /etc/profile
  3. export JAVA_HOME=/usr/local/jdk1.8.0_91
  4. export PATH=$PATH:$JAVA_HOME/bin
  5. [root@node01 ~]# source /etc/profile
  6. [root@node01 ~]# java -version
  7. java version "1.8.0_91"
  8. Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
  9. Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
复制代码
3、安装设置zookeeper

3.1 安装zookeeper

  1. [root@node01 ~]# tar xf apache-zookeeper-3.7.1-bin.tar.gz -C /usr/local/
  2. [root@node01 ~]# mv /usr/local/apache-zookeeper-3.7.1-bin/ /usr/local/zookeeper37
  3. [root@node01 ~]# cp /usr/local/zookeeper37/conf/zoo_sample.cfg /usr/local/zookeeper37/conf/zoo.cfg
复制代码
3.2 编辑设置文件

  1. [root@node01 ~]# mkdir /usr/local/zookeeper37/data
  2. [root@node01 ~]# mkdir /usr/local/zookeeper37/log
  3. [root@node01 ~]# vim /usr/local/zookeeper37/conf/zoo.cfg
  4. dataDir=/usr/local/zookeeper37/data
  5. dataLogDir=/usr/local/zookeeper37/log
  6. clientPort=2181
  7. server.1=192.168.140.10:2888:3888
  8. server.2=192.168.140.11:2888:3888
  9. server.3=192.168.140.12:2888:3888
  10. 2888: 心跳端口
  11. 3888:数据同步端口
复制代码
3.3 创建myid文件

  1. [root@node01 ~]# echo 1 > /usr/local/zookeeper37/data/myid
复制代码
另外两台主机参考上述设置,留意修改myid文件
4、启动zookeeper,验证状态

第一台主机启动:
  1. [root@node01 bin]# ./zkServer.sh start
  2. ZooKeeper JMX enabled by default
  3. Using config: /usr/local/zookeeper37/bin/../conf/zoo.cfg
  4. Starting zookeeper ... STARTED
  5. [root@node01 bin]#
  6. [root@node01 bin]# ./zkServer.sh status
  7. ZooKeeper JMX enabled by default
  8. Using config: /usr/local/zookeeper37/bin/../conf/zoo.cfg
  9. Client port found: 2181. Client address: localhost. Client SSL: false.
  10. Error contacting service. It is probably not running.
  11. // 待第二台主机启动后,再次查看状态
  12. [root@node01 bin]# ./zkServer.sh status
  13. ZooKeeper JMX enabled by default
  14. Using config: /usr/local/zookeeper37/bin/../conf/zoo.cfg
  15. Client port found: 2181. Client address: localhost. Client SSL: false.
  16. Mode: follower
复制代码
第二台主机启动:
  1. [root@node02 ~]# cd /usr/local/zookeeper37/bin/
  2. [root@node02 bin]# ./zkServer.sh start
  3. ZooKeeper JMX enabled by default
  4. Using config: /usr/local/zookeeper37/bin/../conf/zoo.cfg
  5. Starting zookeeper ... STARTED
  6. [root@node02 bin]# ./zkServer.sh status
  7. ZooKeeper JMX enabled by default
  8. Using config: /usr/local/zookeeper37/bin/../conf/zoo.cfg
  9. Client port found: 2181. Client address: localhost. Client SSL: false.
  10. Mode: leader
复制代码
第三台主机启动:
  1. [root@node03 ~]# cd /usr/local/zookeeper37/bin/
  2. [root@node03 bin]# ./zkServer.sh start
  3. ZooKeeper JMX enabled by default
  4. Using config: /usr/local/zookeeper37/bin/../conf/zoo.cfg
  5. Starting zookeeper ... STARTED
  6. [root@node03 bin]# ./zkServer.sh status
  7. ZooKeeper JMX enabled by default
  8. Using config: /usr/local/zookeeper37/bin/../conf/zoo.cfg
  9. Client port found: 2181. Client address: localhost. Client SSL: false.
  10. Mode: follower
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

道家人

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表