zookeeper

1.什么是zookeeper?

    ZooKeeper 是一个开源的分布式协调服务,由雅虎创建,是 Google Chubby 的开源实现。分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、配置维护,名字服务、分布式同步、分布式锁和分布式队列

zookeeper中的角色

1.leader
2.follewer
3.observer

    一个 ZooKeeper 集群同一时刻只会有一个 Leader,其他都是 Follower 或 Observer。ZooKeeper 默认只有 Leader 和 Follower 两种角色,没有 Observer 角色。为了使用 Observer 模式,在任何想变成Observer的节点的配置文件中加入:peerType=observer 并在所有 server 的配置文件中,配置成 observer 模式的 server 的那行配置追加 :observer

zookeeper作用

    zookeeper适合作为dubbo服务的注册中心,工业强度高,可用于生产环境。可以作为集群的管理工具使用,可以集中管理配置文件。

    zookeeper有这几个优点,分别是:简单,高可靠,有序,高性能

简单:允许各分布式应用通过一个共享的命名空间相互联系,该命名空间类似于一个标准的文件系统:由若干注册了的数据节点构成,这些节点类似于文件和目录。与专为存储而设计的典型文件系统不同zookeeper数据保存在内存中,这意味着zookeeper可以实现高吞吐量和低延迟数量。

高可靠:zookeeper本身就是具有冗余结构,它构建在一系列主机之上,构成zookeeper服务的各服务器之间必须相互知道,它们维护着一个状态信息的内存映像,以及在持久化存储中维护着事务日志和快照。只要大部分服务器正常工作zookeeper服务就能正常工作。客户端连接到一台zookeeper服务器。客户端维护这个TCP连接,通过这个连接,客户端可以发送请求、得到应答,得到监视事件以及发送心跳。如果这个连接断了,客户端可以连接到另一个zookeeper服务器。

有序:zookeeper给每次更新附加一个数字标签,表明zk中的事务顺序,后续操作可以利用这个顺序来完成更高层次的抽象功能,例如同步原语操作。

高性能:zookeeper特别适合于以读为主要负荷的场合。zookeeper可以运行在数千台机器上,如果大部分操作为读,例如读写比例为10:1,zk的效率会很高。

zookeeper的节点

临时节点(EPHEMERAL):临时创建的,会话结束节点自动被删除,也可以手动删除,临时节点不能拥有子节点.

持久节点(PERSISTENT):创建后永久存在,除非主动删除。

    以上两种节点为Non-sequence节点,只有一个可创建成功,其它匀失败。并且创建出的节点名称与创建时指定的节点名完全一样.

临时顺序节点(EPHEMERAL_SEQUENTIAL):具有临时节点特征,但是它会有序列号。

持久顺序节点(PERSISTENT_SEQUENTIAL):具有持久节点特征,但是它会有序列号。

    以上两种节点为sequence节点,创建出的节点名在指定的名称之后带有10位10进制数的序号。多个客户端创建同一名称的节点时,都能创建成功,只是序号不同

容器节点(CONTAINER):如果节点中最后一个子Znode被删除,将会触发删除该Znode;

持久定时节点(PERSISTENT_WITH_TTL):客户端断开连接后不会自动删除Znode,如果该Znode没有子Znode且在给定TTL时间内无修改,该Znode将会被删除;TTL单位是毫秒,必须大于0且小于或等于 EphemeralType.MAX_TTL

持久顺序定时节点(PERSISTENT_SEQUENTIAL_WITH_TTL):同PERSISTENT_WITH_TTL,且Znode命名末尾自动添加递增编号;

(注:节点类型在节点创建的时候就被确定且不可改变)

Zookeeper的安装

    Zookeeper是java开发的可以运行在windows、linux环境。需要先安装jdk。

安装的步骤:

    第一步:安装jdk(有好多问题都是jdk不合适,选择一个合适的jdk)

    第二步:把zookeeper的压缩包上传到linux系统。(用ifconfig命令查看系统的ip,然后用secureCRT软件连接)

    第三步:解压缩压缩包(解压缩命令:tar -zxvf zookeeper-3.4.6.tar.gz)

    第四步:进入zookeeper-3.4.6目录,创建data文件夹。

    第五步:把zoo_sample.cfg改名为zoo.cfg(命令:[root@localhost conf]# mv zoo_sample.cfg zoo.cfg)

    第六步:修改data属性(dataDir=/root/zookeeper-3.4.6/data)

    第七步:启动zookeeper([root@localhost bin]# ./zkServer.sh start)关闭:[root@localhost bin]# ./zkServer.sh stop查看状态:[root@localhost bin]# ./zkServer.sh status

    然后zookeeper就安装好了。

评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值