html
前提:先安装jdk,zookeeper运行依赖于java环境。
(1.)下载安装包java
http://mirror.bit.edu.cn/apache/zookeeper https://zookeeper.aphache.org
(2.)解压文件apache
tar -zxvf zookeeper-3.4.13.tar.gz -C /usr/local/ mv /usr/local/zookeeper-3.4.13.tar.gz /usr/local/zookeeper //便于记忆,重命名
(3.)编辑配置文件vim
cd zookeeper-3.4.13/conf cp zoo_sample.cfg zoo.cfg vim zoo.cfg dataDir=/tmp/zookeeper/data //修改成本身建立的目录,临时目录存放数据不安全 dataLogDir=/tmp/zookeeper/log
集群场景配置安全
若是想配置集群的话,请zoo.cfg文件的clientPort下面添加服务器的ip。如
server.1=192.168.180.132:2888:3888 //这里是1,2,3 就是myid的对应的服务器编号,前面的2888端口用于和leader交换数据的,用于同步副本通讯的端口
server.2=192.168.180.133:2888:3888 // 后面这个3888端口用于选举的,在选主的时候用这个端口进行通讯
server.3=192.168.180.134:2888:3888
若是电脑内存比较小,zookeeper还能够设置成伪集群。也就是所有服务器采用同一个ip,可是使用不一样的端口。服务器
若是是配置集群,还须要在前面配置过的dataDir路径下新增myid文件,在data目录下建立文件,文件名为“myid”, 编辑该“myid”文件,并在对应的IP的机器上输入对应的编号。
如在192.168.180.132上,“myid”文件内容就是1。在192.168.180.133上,内容就是2。
cd /tmp/zookeeper/data
touch myid
vim myid数据结构
(4.)设置环境变量负载均衡
vi /etc/profiel ZOOKEEPER_HOME=/usr/local/zookeeper/ PATH=$PATH:$ZOOKEEPER_HOME/bin source /etc/profile
(5.)zookeeper启动分布式
zkServer.sh start //单机模式 zkServer.sh start zoo1.cfg //伪集群分布式模式
(6.)进程查看oop
jps
(7.)客户端的启动
zkcli.sh //启动客户端 ls /path //查看当前节点中所包含的内容 ls2 / //查看详情 create /path "xxx" //建立普通节点 create -e /path1/path2/xxx "xxx" //建立临时节点 create -s /path1/path2 "xxx" //建立带序列号的节点,即自增节点 get /path //获取数据 set /path1/path2 "yyy" //修改数据 get /path1/path2 watch //节点值变化监听 ls /path1 watch //路径变化监听,注册时执行一次,即只执行一次 quit //退出
(1.) 半数机制:半数以上工做正常,适合奇数安装。初始化时的选举,就采用该种方式。
(2.) 选举时先投本身,不能成为master后,再投给节点数比本身大的节点。
(1.)持久型:client与server断开链接后,建立的节点不删除,序列号顺序编号,单调递增。
(2.)临时型:clent与Server断开链接后,建立的节点本身删除,节点顺序编号。
xsync zookeeper/xxx //同步后,其余节点也有该文件夹
(1.)统一配置管理:
分布式环境下,配置文件同步:
a. 集群中全部节点的配置信息一致,如kafka集群
b. 对配置文件修改后,能够快速的同步到其余各个节点上。
配置管理可交给zookeeper实现:
c. 可将配置信息写入zookeeper的一个节点上。
d. 各个客户端监听这个节点,一旦节点中的数据被修改,zookeeper将通知各个客户端,同步数据
(2.) 统一命名服务:
域名 --> 多个IP
(3.)统一集群管理
a.分布式环境中,实现掌握各个节点的状态,可根据节点的实施状态,作出一些调整
b.zookeeper 能够实现实时监控节点状态变化,可将节点信息写入zookeeper的一个节点,监听这个节点可获取它的实时状态变化。
(4.)服务器动态上下线
客户端实时洞察服务器上下线变化,若是该节点挂掉则访问其余节点
(5.)软负载均衡
在zookeeper中记录每台服务器的访问数,让访问数最少的服务器去处理最新的客户端请求。
(1.)树状存储
(2.)默认每一个节点只能存储1M数据
(3.)按路径访问
(1.)zookeeper = 文件系统 + 通知机制
(2.)zookeeper 一个leader,N个follower
(3.)集群中只要有半数 以上节点存活,则zookeeper集群能够正常服务
(4.)全局数据一致:每一个server保存一份相同的数据的副本,客户端不管连到哪一个服务端,数据都是一致的。
(5.)数据更新的原子性,一次数据更新要么成功,要么失败
(6.)实时性,在必定时间内能够获取最新的数据
(7.)zookeeper监听服务端下线原理:
服务端启动时,去注册信息到zookeeper,客户端获取在线服务列表,并注册监听。当服务器节点下线时,zookeeper推送服务端下线的事件给客户端,客户端接收到通知后,从新获取服务器列表,并注册监听。
———————————————————————————————————————————————————————————
http://kafka.apache.org/downloads.html
tar -zxvf kafka_2.11-2.0.0.tgz -C /usr/local/
./kafka-server-start.sh …/config/server.properties //启动Kafka,需指定配置文件