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服务器。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/466002.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MacOS本地使用Docker Desktop 搭建Minio容器

1. 下载docker Desktop docker官网:https://www.docker.com/products/docker-desktop/ 根据自己的型号进行选择,我的M系列芯片,选择的是Apple-Chip,记得需要看到最后噢! 最后有坑点解决办法! 最后有坑点解…

聚类分析 | Matlab实现基于PCA+DBO+K-means的数据聚类可视化

聚类分析 | Matlab实现基于PCADBOK-means的数据聚类可视化 目录 聚类分析 | Matlab实现基于PCADBOK-means的数据聚类可视化效果一览基本介绍程序设计参考资料 效果一览 基本介绍 PCA(主成分分析)、DBO(蜣螂优化算法)和K-means聚类…

安科瑞智慧安全用电云平台【无人化数据监控 远程控制 运维管理】

背景 在住宅火灾中,电气引发的居高不下,已查明原因的火灾中有52%系电气原因引起,尤其是各类家用电器、电动车、电气线路等引发的火灾越来越突出,仅电动自行车引发的较大火灾就有7起。这些事故暴露出电器产品生产质量、流通销售&a…

【Web】浅聊Hessian反序列化之Resin的打法——远程类加载

目录 前言 原理分析 XString:触发恶意类toString QName的设计理念? 远程恶意类加载Context:ContinuationContext QName:恶意toString利用 hash相等构造 EXP 前言 精神状态有点糟糕,随便学一下吧 首先明确一个…

解决Could not autowire. No beans of ‘UserMapper‘ type found问题

问题: 解决方法1 降低spring版本 失败 解决方法2 查看数据库连接,无作用 解决方法3 polo,Mapper不在同一级,修改,但无作用 解决方法4 将Autowrited改为Autowrited(required false),无作用 解决方法…

嵌入式学习-网络编程

1.网络编程作用 程序能够通过网络与其他计算机上的程序进行数据交换、通信和协作 2.关键概念 两个对象:服务器(被动响应请求),客户端(主动发起请求)。浏览器看b站视频时,浏览器就是客户端&am…

基于springboot创建mybatis

第一步:创建项目 第二步:添加依赖 第三步:连接MySQL 第四步:添加MySQL配置 #驱动类名称 spring.datasource.driver-class-namecom.mysql.cj.jdbc.Driver #数据库连接的url spring.datasource.urljdbc:mysql://localhost:3306/myb…

cmake指定不同版本的mingw编译

cmake指定不同版本的mingw编译,实现思路: 通过指定编译链的方式实现即可。 案例如下: mingw530的archi686,mingw810的archx86_64,通过指定不同版本的mingw编译链,实现程序的32bit和64bit的编译。 # 使用mi…

【爬虫】– 抓取原创力文档数据

使用RPA工具,实现针对于原创力中不可下载文档的抓取,可延用于其他类似文库 1 使用工具、环境 影刀RPA、WPS Office、谷歌浏览器(非指定) 2 代码流程 3 关键点 此方案只适合抓取非VIP即可预览全文的文档,抓取下来的数…

程序人生——Java异常使用建议

目录 引出异常建议110:提倡异常封装;建议111:采用异常链传递异常 建议112:受检异常尽可能转化为非受检异常建议113:不要在finally块中处理返回值 建议114:不要在构造函数中抛异常建议115:使用Th…

镜像制作实战篇

“ 在失控边缘冲杀为,最终解脱” CMD与EntryPoint实战 EntryPoint 与 CMD都是docker 镜像制作中的一条命令,它们在概念上可能有些相似,但在使用中,两者是有明显的区别的。比如,执行一个没有调用EntryPoint、CMD的容器会…

Linux系统部署DolphinScheduler任务调度系统并实现无公网IP远程访问

文章目录 前言1. 安装部署DolphinScheduler1.1 启动服务 2. 登录DolphinScheduler界面3. 安装内网穿透工具4. 配置Dolphin Scheduler公网地址5. 固定DolphinScheduler公网地址 前言 本篇教程和大家分享一下DolphinScheduler的安装部署及如何实现公网远程访问,结合内…

常用加密算法解析

对称加密算法 所谓对称,就是采用这种加密方法的双方使用方式用同样的密钥进行加密和解密。密钥是控制加密及解密过程的指令。算法是一组规则,规定如何进行加密和解密。 分类 常用的算法有:DES、3DES、AES等。 DES 全称为Data Encryption…

代码随想录阅读笔记-字符串【替换数字】

题目 给定一个字符串 s,它包含小写字母和数字字符,请编写一个函数,将字符串中的字母字符保持不变,而将每个数字字符替换为number。 例如,对于输入字符串 "a1b2c3",函数应该将其转换为 "anu…

地下电缆频繁被挖断!智能地钉保卫电缆不马虎

随着城市规模的不断扩大和环境美化的高需求,越来越多管道线路转战地下,然而在城市建设过程中,却经常发生地下电缆、燃气管道、水管被破坏或挖断的事故,对居民生活和社会生产造成严重影响。以下是几起地下管线外破事故:…

实体门店加盟全解析:如何选择加盟项目与避免风险

对于想要开实体店或创业的人来说,拥有一个全面的运营方案是成功的关键。作为一名开鲜奶吧5年的创业者,我将为大家详细分享从选址到日常管理的实体店运营要点,帮助创业者少走弯路。 一、选择加盟项目 1.行业前景:选择一个有发展前…

CrossEntropyLoss 和NLLLoss的关系

交叉熵损失在做一件什么事? 看公式: x是预测(不需要softmax归一化),y是label, N是batch维度的数量,交叉熵损失,干了三件事. 1. 对输入在类别维度求softmax 2. 多softmax后的数,求log 3. 对(样本数, 类别数)为shape的tensor计算NLLLoss. 其中,NLLloss做的就是log取负, 和o…

WanAndroid(鸿蒙版)开发的第四篇

前言 DevEco Studio版本:4.0.0.600 WanAndroid的API链接:玩Android 开放API-玩Android - wanandroid.com 其他篇文章参考: 1、WanAndroid(鸿蒙版)开发的第一篇 2、WanAndroid(鸿蒙版)开发的第二篇 3、WanAndroid(鸿蒙版)开发的第三篇 …

(三)OpenOFDM符号对齐

符号对齐 模块:sync_long.v输入:I (16), Q (16), phase_offset (32), short_gi (1)输出:long_preamble_detected (1), fft_re (16), fft_im (16) 检测到数据包后,下一步是精确确定每个 OFDM 符号的起始位置。在802.11中&#xf…