zookeeper:伪集群安装部署

只有一台linux主机,但却想要搭建一套zookeeper集群的环境。
可使用伪集群模式来搭建。
伪集群模式本质上就是在一个linux操做系统里面启动多个zookeeper实例。
这些不一样的实例使用不一样的端口,配置文件以及数据目录。linux

建立独立的目录

建立三个目录,隔离开3个zookeeper实例的数据文件,配置文件:微信

[beanlam@localhost ~]$ mkdir zk1
[beanlam@localhost ~]$ mkdir zk2
[beanlam@localhost ~]$ mkdir zk3

而后,再分别为每一个目录建立一个数据目录,用来存放数据以及id文件spa

[beanlam@localhost ~]$ mkdir zk1/data
[beanlam@localhost ~]$ mkdir zk2/data
[beanlam@localhost ~]$ mkdir zk3/data

指定id

zookeeper启动的时候,会在它的数据目录下寻找id文件,以便知道它本身在集群中的编号。操作系统

[beanlam@localhost ~]$ echo 1 > zk1/data/myid
[beanlam@localhost ~]$ echo 2 > zk2/data/myid
[beanlam@localhost ~]$ echo 3 > zk3/data/myid

修改配置文件

这3个实例,每一个实例都会使用不一样的配置文件启动。
配置示例以下:code

# The number of milliseconds of each tick
tickTime=2000

# The number of ticks that the initial
# synchronization phase can take
initLimit=10

# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5

# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/home/beanlam/zk1/data

# the port at which the clients will connect
clientPort=2181

server.1=127.0.0.1:2222:2223
server.2=127.0.0.1:3333:3334
server.3=127.0.0.1:4444:4445

这是第一个实例的配置,z1.cfg。把这份配置文件放置在zk1/目录下。
同理,第二个和第三个实例的配置分别为z2.cfg和z3.cfg。和第一个实例同样,放在相同的位置。
惟一不一样的是,clientPort必须修改一下,z1.cfg为2181,z2.cfg和z3.cfg不能也是2181,必须彼此不一样,好比2182或者2183。server

配置文件最底下有一个server.n的配置项,这里配置了两个端口,却一种第一个用于集群间实例的通讯,第二个用于leader选举。
至于2181,用于监听客户端的链接。rem

启动和链接

按照如下方式,依次启动3个实例:get

[beanlam@localhost ~]$ cd zk1
[beanlam@localhost zk1]$ ~/zookeeper-3.4.8/bin/zkServer.sh start-foreground ./z1.cfg

启动第一个和第二个实例的时候会有报错信息,由于其它实例还没启动彻底,链接没法创建的缘由,能够直接忽略。
启动完3个实例后,会发现其中有一个是leader,另外两个是follower。可观察输出信息。it

接下来启动一个客户端去进行链接:io

[beanlam@localhost ~]$ ~/zookeeper-3.4.8/bin/zkCli.sh -server 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183

能够看到,客户端链接上了刚才启动的三个实例中的其中一个。

扫一扫关注个人微信公众号

相关文章
相关标签/搜索