Zookeeper 集群入门_firewall-cmd --zone=public --add-port=3888/tcp --p-程序员宅基地

技术标签: zookeeper  

1.概念

ZooKeeper 一个最常用的使用场景就是用于担任服务生产者和服务消费者的注册中心:服务生产者将自己提供的服务注册到 ZooKeeper 中心,服务的消费者在进行服务调用的时候先到 ZooKeeper 中查找服务,获取到服务生产者的详细信息之后,再去调用服务生产者的内容与数据。Zk的数据保存在内存中,限制了znode节点的数据存储量。

通常 3 台服务器就可以构成一个 ZooKeeper 集群了,为什么最好使用奇数台服务器构成 ZooKeeper 集群?我们知道在 ZooKeeper 中 Leader 选举算法采用了 Zab 协议:当多数(过半原则) Server 写成功,则任务数据写成功。

角色 描述
Leader Leader服务器是zk集群工作机制的核心,事务请求的唯一调度者和处理者,保证集群事务请求处理的顺序性
Follower Follower服务器是zk集群状态的跟随者,处理非事务请求,转发事务请求给Leader服务器,参与事务请求的proposal投票,参与Leader选举投票
Observer Observer是一种新型的zk节点,Observer服务器只提供非事务服务.通常用于不影响集群事务处理能力的前提下提升集群的非事务的处理能力,Observer有另外一个优势,因为它不参与投票,所以他们不属于zk集群的关键部位,即使他们Failed,或者从集群中断开,也不会影响集群的可用性

sid:服务器id(myid)
zxid:事务操作序列号
epoch:选举次数
集群初始化时,任何节点都没有事务操作,zxid和epoch任何节点都是一样的,不同的只是sid。此时进行投票sid最大的并且过半时作为leader。1,2,3:2;1,2,3,4,5:3
集群运行时,此时每个节点已经有了事务操作,zxid已经有值,那么就不能考虑sid,zxid更大的数据更完整,所以应当优先考虑为leader;此时zxid一样再以sid较大的作为leader。

2.安装

选择版本:apache-zookeeper-3.6.2-bin.tar.gz

2.1准备

需要开启相应端口:

名称 host
zookeeper服务 2181
数据同步 2888
节点选举 3888

firewall-cmd --zone=public --add-port=2181/tcp --permanent
firewall-cmd --zone=public --add-port=2888/tcp --permanent
firewall-cmd --zone=public --add-port=3888/tcp --permanent
systemctl restart firewalld.service
通过命令:firewall-cmd --list-ports查看是否成功

zookeeper需要依赖jdk1.8才能运行,不会的可移步:Centos7 安装 Java8

2.2下载

cd /usr/local/src
wget -c https://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.6.2/apache-zookeeper-3.6.2-bin.tar.gz
tar -zxvf apache-zookeeper-3.6.2-bin.tar.gz
mv apache-zookeeper-3.6.2-bin /usr/local/zookeeper-3.6.2

2.3配置

需要将zookeeper下的/conf目录中zoo_sample.cfg重命名为zookeeper默认的配置文件:zoo.cfg

mv zoo_sample.cfg zoo.cfg

修改需要的配置

dataDir=/usr/local/zookeeper-3.6.2/data
dataLogDir=/usr/local/zookeeper-3.6.2/logs
#server.服务序列号=ip.follower与leader服务器交换信息的端口(数据同步用):follower与leader服务器选举端口
server.1=192.168.37.101:2888:3888
server.2=192.168.37.102:2888:3888
server.3=192.168.37.103:2888:3888

根据上方zoo.cfg中的dataDir,创建/data目录和myid文件,内容分别是配置中server的服务序列号(1、2、3)

mkdir /usr/local/zookeeper-3.6.2/data
vim /usr/local/zookeeper-3.6.2/data/myid

3.启动

使用./bin/zkServer.sh start进行启动,使用./bin/zkServer.sh status查看服务状态

在这里插入图片描述
在这里插入图片描述
使用官方提供的控制台去进行节点的查看:ZooInspector在这里插入图片描述
在这里插入图片描述
链接指定的zookeeper./bin/zkCli.sh -server 192.168.37.101,通过命令create /test "123"创建一条数据,通过命令ls /进行节点的查看在这里插入图片描述
刷新zookeeper控制台同样可见:

在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zbdaowohao/article/details/108896383

智能推荐

LOONGSON派二代 内核编译_龙芯 gcc-4.9.3-64 下载安装-程序员宅基地

文章浏览阅读658次。1.下载交叉编译工具及内核源码http://ftp.loongnix.cn/embedd/ls3a/toolchain/gcc-4.9.3-64-gnu.tar.gzhttp://ftp.loongnix.cn/embedd/ls2k/linux-3.10.tar.gz2.解压交叉编译工具并加入临时环境变量export PATH=$PATH:/home/ubuntu/loongson/gcc-4.9.3-64-gnu/opt/gcc-4.9.3-64-gnu/bin验证ubu.._龙芯 gcc-4.9.3-64 下载安装

SSM框架讲解(史上最详细的文章)_ssm架构-程序员宅基地

文章浏览阅读10w+次,点赞1.2k次,收藏9.5k次。SSM框架(白痴都看完都会)文章目录SSM框架(白痴都看完都会)介绍SSM框架<原理>一、什么是SSM框架?1.Spring2.Spring MVC3.Mybatis (核心是SqlSession)二、代码实战1.创建配置工程2.代码书写介绍SSM框架<原理>一、什么是SSM框架?SSM框架是spring、spring MVC 、和mybatis框架的整合,是标准的MVC模式。标准的SSM框架有四层,分别是dao层(mapper),service层,controller层_ssm架构

Android磨砂图片处理(FastBlur)-程序员宅基地

文章浏览阅读4.4k次。Android磨砂图片处理(FastBlur)_fastblur

Python基础之time模块_python timeer-程序员宅基地

文章浏览阅读1.4k次。Python基础之time模块1.引入time模块import time2.获取时间戳(1)time.time()获取当前时间戳time1 = time.time()# 1532352941.8780842(2)time.localtime([sec]) 将时间戳格式化为本地时间,sec为指定时间戳,默认为当前时间time1 = time.loca..._python timeer

linux环境下使用netstat命令查看网络信息_linux netstat -ano-程序员宅基地

文章浏览阅读3.6k次,点赞2次,收藏13次。`netstat` 这个命令一直以为是 net status 的缩写,今天一查发现并没有找到官方的这种说法,然后参考了 man 手册,发现这个词更像是 net statistics 的缩写,命令的作用是显示网络连接、路由表、接口连接、无效连接和多播成员关系的..._linux netstat -ano

Sqlmap使用详解_--tamper=space2comment-程序员宅基地

文章浏览阅读3.1k次,点赞2次,收藏26次。目录SqlmapSqlmap的简单用法探测指定URL是否存在SQL注入漏洞查看数据库的所有用户(--users)查看数据库所有用户名的密码(--passwords)查看数据库当前用户(--current-user)判断当前用户是否有管理权限(--is-dba列出数据库管理员角色(--roles)查看所有的数据库(--dbs)查看当前的数据库(--current-db)爆出指定数据库中的所有的表爆..._--tamper=space2comment

随便推点

自定义ExtJS控件之下拉树和下拉表格附源码_报表下拉树控件-程序员宅基地

文章浏览阅读1k次。简介在Ext官方的例子中只有下拉列表控件,但是在实际业务中只有下拉列表无法满足需求的,像下拉树和下拉表格都是很常见的控件,对于刚使用Ext的人来说,自定义一个控件好难,其实多读官方的源码有些事情就不会那么难了。下面是下拉树的代码: 代码如下:Ext.define('ComboTreeBox',{extend : 'Ext.form.field.ComboBox',m_报表下拉树控件

zTree实现删除某个父节点后删除其下所有节点_ztree删除选中父节点-程序员宅基地

文章浏览阅读2.7k次。function onRemove(e, treeId, treeNode) { var newTree=$.fn.zTree.getZTreeObj("tree"); var act=newTree.transformToArray(treeNode.children); var allId=[]; allId.push(treeN_ztree删除选中父节点

jar包详解_jar包结构详解-程序员宅基地

文章浏览阅读8.2k次。1.可运行jar包和普通jar包及目录结构可运行jar包是打jar包时,指定了main-class类,可以通过java -jar xxx.jar 命令,执行main-class的main方法,运行jar包。可运行jar包不可被其他项目进行依赖。普通jar包打包时,不用指定main-class,也不可运行。普通jar包可以供其它项目进行依赖。jar包的配置文件是META-INF文件夹下的MANIFEST.MF文件。里面配置了如下信息:Manifest-Version用来定义manifest文件的版本_jar包结构详解

SpringAOP日志注解_spring aop 日志实现注解-程序员宅基地

文章浏览阅读819次。Spring AOP自定义注解_spring aop 日志实现注解

JAVA字符串转日期或日期转字符串_java200807转日期格式-程序员宅基地

文章浏览阅读2.5w次,点赞3次,收藏22次。用法: SimpleDateFormat sdf = new SimpleDateFormat( " yyyy-MM-dd HH:mm:ss " ); 这一行最重要,它确立了转换的格式,yyyy是完整的公元年,MM是月份,dd是日期,至于HH:mm:ss 就不需要我再解释了吧! PS:为什么有的格式大写,有的格式小写,那是怕避免混淆,例如MM是月..._java200807转日期格式

2024计算机考研《操作系统考研通关800题》下载分享_操作系统考研真题网盘-程序员宅基地

文章浏览阅读83次。B、中程调度的主要功能是当内存紧张是挂起部分暂时不运行的进程,并在内存有空闲时激活部分被挂起的进程,以提高内存利用与和系统吞吐量。[P1638] 在对记录型信号量的wait操作的定义中,当信号量的值( )时,执行wait操作的进程变为阻塞状态。[P1648] 作业的操作分为若干作业步,一个典型作业操作通常分为三个作业步,下列错误的是( )[P1637] 已知记录型信号量S,当前S.value的值为-5,下列选项错误的是( )A.用户数越少 B.用户数越多 C.内存越小 D.内存越大。_操作系统考研真题网盘