zookeeper 集群

zookeeper 集群

1、zookeeper 集群说明

initLimit 是Zookeeper用它来限定集群中的Zookeeper服务器连接到Leader的时限
syncLimit 限制了follower服务器与leader服务器之间请求和应答之间的时限
服务器名称与地址:集群信息(服务器编号,服务器地址,LF通信端口,选举端口)
这个配置项的书写格式比较特殊,规则如下:server.N=YYY:A:B 其中,
N表示服务器编号,
YYY表示服务器的IP地址,
A为LF通信端口,表示该服务器与集群中的leader交换的信息的端口。
B为选举端口,表示选举新leader时服务器间相互通信的端口(当leader挂掉时,其余服务器会相互通信,选择出新的leader)

一般来说,集群中每个服务器的A端口都是一样,每个服务器的B端口也是一样。
下面是一个集群的例子:

server.0=233.34.9.144:2008:6008  
server.1=233.34.9.145:2008:6008  
server.2=233.34.9.146:2008:6008
server.3=233.34.9.147:2008:6008  

但是当所采用的为伪集群时,IP地址都一样,只能是A端口和B端口不一样。
下面是一个伪集群的例子:

server.0=127.0.0.1:2008:6008
server.1=127.0.0.1:2007:6007
server.2=127.0.0.1:2006:6006
server.3=127.0.0.1:2005:6005

2、搭建集群

2.1 拷贝赋值

zookeeper-3.4.14.tar.gz解压后拷贝到/opt目录下并重新名为zk01。

[root@localhost myzookeeper]# mv zookeeper-3.4.14.tar.gz /opt/ 
[root@localhost opt]# tar -zxvf zookeeper-3.4.14.tar.gz
[root@localhost opt]# mv zookeeper-3.4.14 zk01

2.2 在zk01中的创建mydata文件夹

[root@localhost zk01]# mkdir mydata

2.3 新建zoo.cfg

[root@localhost conf]# cp zoo_sample.cfg zoo.cfg

2.4 修改zoo.cfg配置文件

在这里插入图片描述

server.1=127.0.0.1:2991:3991
server.2=127.0.0.1:2992:3992
server.3=127.0.0.1:2993:3993

2.5 创建myId文件

在zk01的 mydata下面创建myid的文件,在里面写入server的数字
表示1号服务器

# vim myid

里面写1 然后退出并保存
在这里插入图片描述

为了确保zk01 正确,我们可以启动测试一下
在这里插入图片描述

关闭当前的zk01 服务

[root@localhost opt]# kill -9 4060

2.6 将zk01 赋值两份分别为zk02,zk03

[root@localhost opt]# cp -r zk01 zk02
[root@localhost opt]# cp -r zk01 zk03

2.7 修改zk02,zk03的zoo.cfg,myid配置文件

#zk02
[root@localhost opt]# vim zk02/conf/zoo.cfg
在这里插入图片描述

[root@localhost opt]# vim zk02/mydata/myid 

在这里插入图片描述

#zk03

[root@localhost opt]# vim zk03/conf/zoo.cfg 

在这里插入图片描述

 
[root@localhost opt]# vim zk03/mydata/myid

在这里插入图片描述

2.8 启动集群

# vim startup.sh
/opt/zk01/bin/zkServer.sh start
/opt/zk02/bin/zkServer.sh start
/opt/zk03/bin/zkServer.sh start
:wq 
# chmod +x startup.sh
./startup.sh
查看进程
# ps –ef |grep zookeeper
2.9 使用客户端链接集群
[root@localhost opt]# ./zk01/bin/zkCli.sh -server 127.0.0.1:2191

在客户端2191 中添加节点
在这里插入图片描述

在客户端2192中查询
在这里插入图片描述

2.10 查看节点的状态

[root@localhost opt]# ./zk01/bin/zkServer.sh status

在这里插入图片描述

2.11 集群主机宕机情况测试

测试1:主机宕机./zk02/bin/zkServer.sh stop[root@localhost opt]# ./zk01/bin/zkServer.sh statusZooKeeper JMX enabled by defaultUsing config: /opt/zk01/bin/../conf/zoo.cfgMode: follower[root@localhost opt]# ./zk02/bin/zkServer.sh statusZooKeeper JMX enabled by defaultUsing config: /opt/zk02/bin/../conf/zoo.cfgError contacting service. It is probably not running.[root@localhost opt]# ./zk03/bin/zkServer.sh statusZooKeeper JMX enabled by defaultUsing config: /opt/zk03/bin/../conf/zoo.cfgMode: leader[root@localhost opt]# 3号上位!create /test01 test0113都有数据。
测试2:主机活了./zk02/bin/zkServer.sh start[root@localhost opt]# ./zk02/bin/zkServer.sh startZooKeeper JMX enabled by defaultUsing config: /opt/zk02/bin/../conf/zoo.cfgStarting zookeeper ... STARTED[root@localhost opt]# ./zk01/bin/zkServer.sh statusZooKeeper JMX enabled by defaultUsing config: /opt/zk01/bin/../conf/zoo.cfgMode: follower[root@localhost opt]# ./zk02/bin/zkServer.sh statusZooKeeper JMX enabled by defaultUsing config: /opt/zk02/bin/../conf/zoo.cfgMode: follower[root@localhost opt]# ./zk03/bin/zkServer.sh statusZooKeeper JMX enabled by defaultUsing config: /opt/zk03/bin/../conf/zoo.cfgMode: leader[root@localhost opt]# 查看2号机是否有数据同步?[zk: 127.0.0.1:2192(CONNECTED) 0] ls /[zookeeper, test, test01]

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

score_inverse_problems运行环境,pycharm重新安装,jax,jaxlib的GPU版本安装-230831

尝试运行https://github.com/yang-song/score_inverse_problems pycharm2019不支持python3.10,其实后来我用来3.8…… pycharm2022.3.3的安装,涉及激活(淘宝5元),搜狗拼音输入(shift不能切换输入法&#x…

Blender界面学习03 原点、鼠标所在位置的缩放与旋转

物体的坐标原点可以移动 放大缩小时默认是屏幕中央,修改为鼠标在哪儿就缩放哪儿 默认旋转时围绕屏幕的中心 可以修改为指定对象旋转

【网络教程】群晖轻松设置钉钉机器人使用Webhook发送通知消息,分分钟搞定!

文章目录 准备设置相关链接准备 演示环境:群晖DSM7.2(其他版本操作雷同)需要提前准备好你的钉钉机器人webhook链接,如果你还不会设置/获取,请点击 参考这篇文章 或自行某度设置 打开群晖,进入控制面板 —> 通知设置 —> Webhooks,如下图 然后点击新增,提供商选择…

使用栈检查括号的合法性 C 实现

使用栈检查括号的合法性 思路讲解:首先从数组数组0下标开始,如果是左括号直接无脑压入栈,直到出现右括号开始判断合法与否。遇到右括号分两种情况,第一种是空栈的情况,也就是说我们第一个字符就是右括号,那…

应用于伺服电机控制、 编码器仿真、 电动助力转向、发电机、 汽车运动检测与控制的旋变数字转换器MS5905P

MS5905P 是一款 12bit 分辨率的旋变数字转换器。 片上集成正弦波激励电路,正弦和余弦允许输入峰峰值 幅度为 2.3V 到 4.0V ,可编程激励频率为 10kHz 、 12kHz 、 15kHz 、 20kHz 。 转换器可并行或串行输出角度 和速度对应的数字量。 MS5905…

C++字符串详解

C++ 大大增强了对字符串的支持,除了可以使用C风格的字符串,还可以使用内置的 string 类。string 类处理起字符串来会方便很多,完全可以代替C语言中的字符数组或字符串指针。 string 是 C++ 中常用的一个类,它非常重要,我们有必要在此单独讲解一下。 使用 string 类需要包…

07-架构2023版-centos+docker部署Canal 实现多端数据同步

canal 工作原理 canal 模拟 MySQL slave 的交互协议,伪装自己为 MySQL slave ,向 MySQL master 发送dump 协议MySQL master 收到 dump 请求,开始推送 binary log 给 slave (即 canal )canal 解析 binary log 对象(原始为 byte 流)基于日志增量订阅和消费的业务包括 数据库镜…

[论文笔记]SiameseNet

引言 这是Learning Text Similarity with Siamese Recurrent Networks的论文笔记。 论文标题意思是利用孪生循环神经网络学习文本相似性。 什么是孪生神经网络呢?满足以下两个条件即可: 输入是成对的网络结构和参数共享(即同一个网络)如下图所示: 看到这种图要知道可能代…

Java 中数据结构ArrayList的用法

Java ArrayList ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。 方法集合样例代码 import java.util.*;public class list_set_iterator {public static void main(String[] args) {Lis…

java八股文面试[多线程]——线程的状态

5种状态一般是针对传统的线程状态来说(操作系统层面) 6种状态:Java中给线程准备的 NEW:Thread对象被创建出来了,但是还没有执行start方法。 RUNNABLE:Thread对象调用了start方法,就为RUNNABLE状…

js如何遍历对象的key和value

在JavaScript中,可以使用for…in循环来遍历对象的键(key)和值(value)。以下是一个示例: let obj { key1: value1, key2: value2, key3: value3 }; for (let key in obj) { if (obj.hasOwnProperty…

weblogic/CVE-2018-2894文件上传漏洞复现

启动docker环境 查看帮助文档 环境启动后,访问http://your-ip:7001/console,即可看到后台登录页面。 执行docker-compose logs | grep password可查看管理员密码,管理员用户名为weblogic,密码为lFVAJ89F 登录后台页面,…

实现远程访问Linux堡垒机:通过JumpServer系统进行安全的服务器管理

文章目录 前言1. 安装Jump server2. 本地访问jump server3. 安装 cpolar内网穿透软件4. 配置Jump server公网访问地址5. 公网远程访问Jump server6. 固定Jump server公网地址 前言 JumpServer 是广受欢迎的开源堡垒机,是符合 4A 规范的专业运维安全审计系统。JumpS…

万字解读 Android 车机核心 :CarService 的构成和链路~

前言 关于 Android 车机,之前分析过方控上自定义按键的输入机制和中控上旋钮输入的原理,但都局限于 Car Service 内 Input 相关模块。 一文了解 Android 车机如何处理中控的旋钮输入从实体按键看 Android 车载的自定义事件机制 本文将结合 Android 系…

软件架构模式+系统架构

架构模式对比 分层模式 一般信息系统中最常见的4层划分如下: Presentation layer 表示层(也就是UI层)Application layer 应用层(也就是服务层)Business logic layer 业务逻辑层(也就是领域层)…

js的各种循环遍历

for循环遍历查找&#xff1a; var arr [{name:al},{name:ba},{name:age}]; var target age; for(var i0; i<arr.length; i){if(arr[i].name target){console.log(找到了&#xff01;);break;} }3.getIntDictOptions(system_user_sex).forEach((oj)>{return(oj.value …

Python 没有 pip 包问题解决

最近需要搞一个干净的Python,从官网上直接下载解压可用的绿色版&#xff0c;发现无法正常使用PiP 一 官网下载Python https://www.python.org/downloads/ 选择 embeddable package,这种是免安装的包&#xff0c;解压后可以直接使用。 二 配置环境变量 添加环境变量&#xff1a…

微服务--Sentinel(实现:服务高可用)

内存溢出&#xff1a;OOM 服务器挂掉的原因&#xff1a; 1.激增流量打垮&#xff1a; 1.流量突然飙升&#xff0c;导致CPU上升&#xff0c;出现挂机 2.负载不均&#xff1a;比如一个实例长期未重启&#xff0c;导致磁盘写满降低响应时间等。 3.线程池满&#xff0c;单点故障&…

组合导航相关技术(概念版)

重要说明&#xff1a;本文从网上资料整理而来&#xff0c;仅记录博主学习相关知识点的过程&#xff0c;侵删。 一、参考资料 b站视频&#xff1a;武汉大学研究生组合导航课程合集【2022年春】 资料下载&#xff1a;组合导航算法讲义 二、知识储备 1. 滤波器 滤波&#xf…

【Vue3 知识第三讲】模板语法、Vue3指令

一、模板语法 插值表达式 {{ data }} 可以用于渲染 Vue 中提供的数据。 数字化管理平台 Vue3ViteVueRouterPiniaAxiosElementPlus 权限系统-商城 个人博客地址 <script setup>import {ref} from "vue"const message ref("Hello Vue3!!")const nu…