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

能夠看到,客戶端鏈接上了剛纔啓動的三個實例中的其中一個。

掃一掃關注個人微信公衆號

相關文章
相關標籤/搜索