linux-zookeeper-kafka入门


公告:版权全部,违者必究
html

1.zookeeper安装

前提:先安装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  //退出

2. zookeeper的选举机制

(1.) 半数机制:半数以上工做正常,适合奇数安装。初始化时的选举,就采用该种方式。
(2.) 选举时先投本身,不能成为master后,再投给节点数比本身大的节点。

3.节点类型

(1.)持久型:client与server断开链接后,建立的节点不删除,序列号顺序编号,单调递增。
(2.)临时型:clent与Server断开链接后,建立的节点本身删除,节点顺序编号。

4.内容同步到其余节点

xsync zookeeper/xxx    //同步后,其余节点也有该文件夹

5.zookeeper应用场景

(1.)统一配置管理:
分布式环境下,配置文件同步:

a. 集群中全部节点的配置信息一致,如kafka集群

b. 对配置文件修改后,能够快速的同步到其余各个节点上。
配置管理可交给zookeeper实现:

c. 可将配置信息写入zookeeper的一个节点上。

d. 各个客户端监听这个节点,一旦节点中的数据被修改,zookeeper将通知各个客户端,同步数据
(2.) 统一命名服务:
域名 --> 多个IP
(3.)统一集群管理
a.分布式环境中,实现掌握各个节点的状态,可根据节点的实施状态,作出一些调整
b.zookeeper 能够实现实时监控节点状态变化,可将节点信息写入zookeeper的一个节点,监听这个节点可获取它的实时状态变化。
(4.)服务器动态上下线
客户端实时洞察服务器上下线变化,若是该节点挂掉则访问其余节点
(5.)软负载均衡
在zookeeper中记录每台服务器的访问数,让访问数最少的服务器去处理最新的客户端请求。

6.zookeeper数据结构

(1.)树状存储
(2.)默认每一个节点只能存储1M数据
(3.)按路径访问

7.zookeeper特性

(1.)zookeeper = 文件系统 + 通知机制
(2.)zookeeper 一个leader,N个follower
(3.)集群中只要有半数 以上节点存活,则zookeeper集群能够正常服务
(4.)全局数据一致:每一个server保存一份相同的数据的副本,客户端不管连到哪一个服务端,数据都是一致的。
(5.)数据更新的原子性,一次数据更新要么成功,要么失败
(6.)实时性,在必定时间内能够获取最新的数据
(7.)zookeeper监听服务端下线原理:
服务端启动时,去注册信息到zookeeper,客户端获取在线服务列表,并注册监听。当服务器节点下线时,zookeeper推送服务端下线的事件给客户端,客户端接收到通知后,从新获取服务器列表,并注册监听。
———————————————————————————————————————————————————————————


———————————————————————————————————————————————————————————

kafka入门

1.下载安装包

http://kafka.apache.org/downloads.html

2.解压文件

tar -zxvf kafka_2.11-2.0.0.tgz -C /usr/local/

3.进入bin目录启动

./kafka-server-start.sh …/config/server.properties  //启动Kafka,需指定配置文件
相关文章
相关标签/搜索