Zookeeper集群搭建

1.概述

  • zookeeper是什么?     开放源码的分布式协调服务,是一个高性能的分布式数据一致性解决方案

  • zookeeper的典型应用场景?      master选举、数据发布与订阅、负载均衡、命名服务(例如分布式服务id)、分布式协调(分布式锁)/通知(心跳机制)

  • zookeeper的优势?     开放源码、有广泛的应用基础(hadoop、storm、kafka等)、已经被证实是高性能、易用稳定的产品

 

2.zookeeper中的基本概念

  • 集群角色?    Leader、Follwer、Observer       使用到了Leader/Follwer设计模式和Observer观察者模式.

  • 会话?       客户端与zookeeper服务器的连接,zookeeper中的会话叫session(有心跳机制检测)

  • 数据节点?   很重要的两种节点:持久节点和临时节点,zookeeper的数据模型是一棵树,树的节点是Znode,Znode中可以保存信息

  • 版本?   分为三种   version:当前数据节点数据内容的版本号;cversion:当前数据节点子节点的版本号;aversion:当前数据节点ACL变更版本号

  • watcher?    事件监听器,zookeeper允许用户在指定节点上注册一些watcher,当数据节点发生变化时,zookeeper服务器发通知给指定的zookeeper客户端

  • ACL权限控制?    ACL策略进行权限控制,CREATE:创建子节点权限;READ:获取节点数据和子节点列表权限 ;WRITE:更新节点数据权限;DELETE:删除子节点权限;ADMIN:设置节点ACL的权限

 

3.zookeeper集群搭建

#修改快照存储位置

dataDir=/var/zookeeper

#新增

#server.id=host:port:port

server.1=10.200.121.157:2888:3888

server.2=10.200.121.38:2888:3888

server.3=10.200.121.43:2888:3888

注意:

  1. dataDir目录是存储zookeeper快照的位置,如果你的var目录下没有zookeeper目录,请手动新建;
  2. id请保证每台机器上唯一,不重复
  3. 防火墙开放端口2888,3888可用
  • 接着进入/var/zookeeper目录下新建myid,vim myid,把刚刚配置的每个节点的id直接写在这里,例如10.200.121.157机器中,myid就写入1即可,需要和上面server.id=host:port:port的id对应

  • 启动  ./zookeeper/bin/zkServer.sh start

  • 使用 telnet 10.200.121.157 2181 命令,接着输入stat,查看状态(如果没有telnet命令,先yum -y install telnet)

4.本人项目用zookeeper做了什么

  • 服务负载均衡在7台机器上,基于Curator客户端实现了分布式锁(基于zk的临时有序节点实现);

  • 分布式定时任务中使用到了基于Curator客户端的Leader Latch实现了Master选举来保证只有一台机器(master)执行定时任务(基于zk的临时节点特性:同一路径下只能创建一个临时节点来实现);

  • 利用zookeeper的持久顺序节点特性,生成分布式唯一ID。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值