zookeeper集群安装部署和集群异常处理

  1. 准备jdk和zookeeper安装包【官网即可下载】

zookeeper-3.5.1-alpha.tar.gz

jdk1.7.0_8020200612.tar

  1. 准备三台linux虚拟机【具体以项目实际需要为准】,并安装jdk和zookeeper

虚拟机地址如下:194.1.1.86(server.1)、194.1.1.74(server.2)、194.1.1.45(server.3)

  1. 安装zookeeper(/app/soft/安装目录自定义)

3.1、分别将zookeeper-3.5.1-alpha.tar.gz安装包拷贝至194.1.1.86、194.1.1.74、194.1.1.45服务器的/app/soft/目录,然后执行以下命令解压:

[domains@ensemble1 soft]$ tar -zxvf zookeeper-3.5.1-alpha.tar.gz zookeeper

然后进入zookeeper目录创建data、logs目录

[domains@ensemble1 zookeeper]$ pwd

/app/soft/zookeeper

[domains@ensemble1 zookeeper]$ mkdir logs data

3.2、配置zoo.cfg文件【3台虚拟机分别执行】:

进入conf目录执行以下命令拷贝创建zoo.cfg文件

[domains@ensemble1 conf]$ cpzoo_sample.cfgzoo.cfg

[domains@ensemble1 conf]$ ll

vi zoo.cfg配置集群信息1/2/3要与对应服务器和myid文件一致,其中2888是数据同步和通信端口,3888是选举端口:

server.1= 194.1.1.86:2888:3888

server.2= 194.1.1.74:2888:3888

server.3= 194.1.1.45:2888:3888

dataDir=/app/soft/zookeeper/data【配置zookeeper数据文件存储目录】

3.3、在服务存放zookeeper数据文件目录执行以下命令穿件myid文件,并分别写入各节点对应的数字,例如在194.1.1.86的myid文件中写入1:

[domains@ensemble1 data]$ pwd

/app/soft/zookeeper/data

[domains@ensemble1 data]$ echo 1 >myid

194.1.1.74的myid文件中写入2:

[domains@ensemble1 data]$ pwd

/app/soft/zookeeper/data

[domains@ensemble1 data]$ echo 2 >myid

194.1.1.45的myid文件中写入3:

[domains@ensemble1 data]$ pwd

/app/soft/zookeeper/data

[domains@ensemble1 data]$ echo 3>myid

3.4、可以根据需要修改日志路径:

日志文件输入路径在/app/soft/zookeeper/bin/zkEnv.sh变量里找到

if [ "x${ZOO_LOG_DIR}" = "x" ]

then

    ZOO_LOG_DIR="$ZOOKEEPER_PREFIX/logs"

Fi

  1. 启动zookeeper集群,分别进入3台虚拟机的/app/soft/zookeeper/bin/目录执行以下命令启动zookeeper服务:

[domains@ensemble1 bin]$ ./zkServer.sh start

ZooKeeper JMX enabled by default

Using config: /app/soft/zookeeper/bin/../conf/zoo.cfg

Starting zookeeper ... STARTED

然后查看当前服务状态:

[domains@ensemble1 bin]$ ./zkServer.sh status

ZooKeeper JMX enabled by default

Using config: /app/soft/zookeeper/bin/../conf/zoo.cfg

Client port found: 2181. Client address: localhost.

Mode: follower

注意:3台服务器的zookeeper服务都启动完成后,查看zookeeper状态会发现3台服务会选举一各leader节点和2个follower节点。

  1. 验证zookeeper集群是否搭建完成:

输入以下命令:[domains@ensemble1 bin]$ ./zkCli.sh -server 194.1.1.74:2181

输入ls/path

【查看zookeeper集群中注册的服务,在zookeeper中各服务的存储Id,客户端

调用服务时也是通过id值找到集群服务中对应的应用服务然后调用】

  1. 集群中各节点宕机后的影响和处理方式:

以上3个节点的zookeeper集群中会选举出一个leader和2个follower节点,follower几点负责接收客户端的请求并处理,leader节点负责服务端服务id的写入并同步给follower节点。

6.1、2个follower节点中任意一个节点挂掉

当2个follower节点中任意一个节点挂掉是不会影响zookeeper集群对外提供服务,这个时候恢复集群只需要把对应宕机节点的zookeeper服务重新启动即可。

6.2、 2个follower节点同时宕机

当2个follower节点同时宕机挂掉是不会影响zookeeper集群对外提供服务,但是应用服务后台会提示zookeeper连接拒绝异常:

2024-03-15 15:25:13,108 : eaip-XA1010080-0 WARN main-SendThread(194.1.35.8:2181) org.apache.zookeeper.ClientCnxn run 1235: Session 0x318dd1c13950000 for server 194.1.1.74/194.1.1.74:2181, unexpected error, closing socket connection and attempting reconnect

java.net.ConnectException: Connection refused: no further information

atsun.nio.ch.SocketChannelImpl.checkConnect(Native Method)

at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)

at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:357)

at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1214)

2024-03-15 15:25:13,612 : eaip-XA1010080-0 WARN main-SendThread(194.1.1.86:2181) org.apache.zookeeper.ClientCnxn run 1235: Session 0x21eff7c26120000 for server 194.1.1.74/194.1.1.74:2181, unexpected error, closing socket connection and attempting reconnect

java.net.ConnectException: Connection refused: no further information

atsun.nio.ch.SocketChannelImpl.checkConnect(Native Method)

at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)

at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:357)

at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1214)这个时候恢复集群只需要把对应宕机节点的zookeeper服务重新启动即可。

6.2、leader节点宕机挂掉

当leader节点宕机挂掉后,应用服务是不会出现异常。这个时候2个follower节点会自动选举一个新的leader节点,此时只需要把宕机的节点重新启动即可。

6.3、leader节点和一个follower节点同时宕机

当eader节点和一个follower节点同时宕机掉后,客户端调用应用服务会出现异常。但是这个时候zookeeper集群服务应挂掉,需要重启3台服务器zookeeper服务器。       

2024-03-15 15:36:59,995 : gw-nbs-XA1010080-0 WARN RMI TCP Connection(194.1.35.8:2181) org.apache.zookeeper.ClientCnxn run 1235: Session 0x10f9f2774430000 for server 194.1.1.74/194.1.1.74:2181, unexpected error, closing socket connection and attempting reconnect

java.net.ConnectException: Connection refused: no further information

         atsun.nio.ch.SocketChannelImpl.checkConnect(Native Method)

         at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)

         at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:357)

         at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1214)

2024-03-15 15:37:00,330 : gw-nbs-XA1010080-0 WARN RMI TCP Connection(194.1.1.86:2181) org.apache.zookeeper.ClientCnxn run 1235: Session 0x0 for server 194.1.1.74/194.1.1.74:2181, unexpected error, closing socket connection and attempting reconnect

java.net.ConnectException: Connection refused: no further information

         atsun.nio.ch.SocketChannelImpl.checkConnect(Native Method)

         at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)

         at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:357)

         at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1214)

2024-03-15 15:37:00,912 : gw-nbs-XA1010080-0 WARN RMI TCP Connection(194.1.1.86:2181) org.apache.zookeeper.ClientCnxn run 1235: Session 0x0 for server 194.1.1.74/194.1.1.74:2181, unexpected error, closing socket connection and attempting reconnect

6.4、3个集群节点同时宕机

需要重启3台服务器zookeeper服务器。

  • 27
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值