Zookeeper基础
来源:互联网 发布:js 导出文件选择路径 编辑:程序博客网 时间:2024/05/19 05:05
Zookeeper
1、Zookeeper是一个开放源代码的分布式协调服务是雅虎创建,是Google Chubby的开源实现。
设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供给用户使用。
2、Zookeeper是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于Zookeeper实现数据发布/订阅、负载均衡,命名服务,分布式协调/通知,集群管理,Master选举,分布式锁和分布式队列等功能。
3、Zookeeper可以保证如下分布式一致性特性:
顺序一致性:从同一客户端发起的请求,最终将会严格按照其发起顺序被应用到Zookeeper中。
原子性:所有的事务请求结果在整个集群中所有机器上的应用情况是一致的。不会出现集群中部分机器应用了该事务,而另一部分没用应用的情况。
单一视图:无论客户端连接那个Zookeeper服务器,看到的服务器数据模型是一致的。
可靠性:一旦服务器成功地应用了一个事务,并完成对客户端的响应,那么该事务引起的服务端状态变更将会一直保留下来,除非有另一个事务对其进行变更。
实时性:Zookeeper仅仅保证在一定时间段内,客户端最终一定能够从服务端上读取到最新的数据状态。
4、Zookeeper的设计目标:
Zookeeper致力于提供一个高性能、高可用,且具有严格的顺序访问控制能力的分布式协调服务。
目标一:简单的数据模型
Zookeeper使得分布式程序能够通过一个共享的、树型结构的名字空间来进行相互协调。
目标二:可以构建集群
一个Zookeeper集群通常由一组机器组成。
组成Zookeeper集群的每台机器都会在内存中维护当前的服务器状态,并且每一台机器之间都互相保持通信。只要集群中超过一半机器正常工作,那么整个集群就能够正常对外服务。
目标三:顺序访问
对于来自客户端的每个更新请求,Zookeeper都会分配一个全局的递增编号,来反映所有事务操作的顺序,应用程序可以使用Zookeeper的这个特性来实现更高层次的同步原语。
目标四:高性能
Zookeeper将全量数据存储在内存中,并直接服务于客户端的所有的非事务请求,因此Zookeeper尤其适用以读操作为主的应用场景。
5、如何使用(搭建集群服务器):
1、准备java运行环境,下载Zookeeper安装包。
tickTime=2000
initLimit=10
syncLimit=8
maxClientCnxns=300
dataDir=/var/lib/Zookeeper/data
dataLogDir=/var/lib/Zookeeper/logs
clientPort=2181
server.1=11.114.26.38:2181:3181//集群中的服务器1
server.2=11.114.26.39:2181:3181//集群中的服务器2
server.3= 11.114.26.40:2181:3181//集群中的服务器3
server.id=host:port:port//代表一个机器
3、在dataDir目录相爱创建myid文件,该文件只有一行数据,并且是一个数字,对应于每一台机器的server.id数字。
例如在server.1=11.114.26.38:2181:3181机器上的myid文件就是1。
4、启动:
启动Zookeeper
sh zkServer.sh start
Usage: ./zkServer.sh {start|start-foreground|stop|restart|status|upgrade|print-cmd}
5、验证:
ps -ef | grep Zookeeper
有相应的进程信息,表示运行成功。
6、Zookeeper的单机模式(Zookeeper支持单机部署,启动一台Zookeeper机器就可以提供服务)
单机模式的部署与集群模式的部署步骤基本一致,只有zoo.cfg 文件配置有差异。
tickTime=2000
initLimit=10
syncLimit=8
maxClientCnxns=300
dataDir=/var/lib/Zookeeper/data
dataLogDir=/var/lib/Zookeeper/logs
clientPort=2181
server.1=11.114.26.38:2181:3181//单机模式只有一台
集群模式与单机模式输出的服务器验证信息基本一致,只有Mode属性不一样,集群模式下Mode显示leader或者follower。单机模式显示standalone。
7、伪集群模式;
集群所有的机器都在一台机器上,但还是以集群的特性来对外提供服务。
tickTime=2000
initLimit=10
syncLimit=8
maxClientCnxns=300
dataDir=/var/lib/Zookeeper/data
dataLogDir=/var/lib/Zookeeper/logs
clientPort=2181
server.1=11.114.26.38:2181:3181//集群中的服务器1
server.2=11.114.26.38:2182:3182//集群中的服务器2
server.3= 11.114.26.38:2183:3183//集群中的服务器3
配置信息如上:每一行机器列表都是同一个Ip地址,但是后面的端口配置已经不一样了。
8、启动与停止Zookeeper
/zookeeper/bin/目录下有这几个脚本
.sh和.cmd,分别适用UNIX系统和Windows系统。
启动Zookeeper
sh zkServer.sh start
Usage: ./zkServer.sh {start|start-foreground|stop|restart|status|upgrade|print-cmd}
停止Zookeeper
sh zkServer.sh stop
每天努力一点,每天都在进步。
阅读全文
0 0
- ZooKeeper基础
- Zookeeper 基础
- Zookeeper 基础
- Zookeeper-基础
- Zookeeper基础
- zookeeper基础
- Zookeeper基础—Zookeeper介绍
- 【ZooKeeper 基础篇】初识
- zookeeper基础搭建
- zookeeper基础(笔记)
- zookeeper基础命令
- zookeeper基础(转)
- 基础加强 -zookeeper
- Zookeeper基础知识点
- Zookeeper--客户端基础命令
- Zookeeper学习(三):Zookeeper的基础进阶
- Zookeeper基础—Zookeeper安装与配制(Window版本)
- Zookeeper基础—Zookeeper安装与配制(Linux)
- js中的函数基础
- 设备树
- 利用拉普拉斯算子进行图像的锐化
- 人活着系列之芳姐和芳姐的猪(Floyd)
- docker笔记
- Zookeeper基础
- Java中Arrays类方法
- Linux下安装Git
- HTML5音频播放器显示歌词功能思路及实现
- 8月1日训练
- 欢迎使用CSDN-markdown编辑器
- JavaScript-流程控制switch
- Python Unicode与中文处理
- Git服务器安装 windows