zookeeper集群搭建
时间:2022-07-22
本文章向大家介绍zookeeper集群搭建,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
概要
整体的搭建十分简单,只需要区别一些各个实例的dataDir
和clientPort
配置信息即可。
整体结构:
➜ ~ tree -L 1 zookeepers
zookeepers
├── data
├── zk.sh
├── zookeeper-3.4.9-2181
├── zookeeper-3.4.9-2182
└── zookeeper-3.4.9-2183
4 directories, 1 file
配置
当前使用的zookeeper版本为3.4.9
,好像默认只能读取conf/zoo.cfg
配置文件,无法在运行时指定。所以,直接将zk复制三份,分别配置。
zookeeper-3.4.9-2181/conf/zoo.cfg
# 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=/Users/lpe234/zookeepers/data/2181
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
#
#
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890
另外两个的配置文件类似,只需要修改一下 dataDir
和clientPort
,另外的server.[myid]
配置是个重点。
dataDir的文件结构如下:
➜ ~ tree -L 2 zookeepers/data
zookeepers/data
├── 2181
│ ├── myid
│ ├── version-2
│ └── zookeeper_server.pid
├── 2182
│ ├── myid
│ ├── version-2
│ └── zookeeper_server.pid
└── 2183
├── myid
├── version-2
└── zookeeper_server.pid
6 directories, 6 files
myid
也就是cfg文件中,server.[myid]
的配置。即是每个server的唯一ID。
# 依次生成即可, 这样才能与cfg配置的信息相对应起来
➜ zookeepers echo 1 > data/2181/myid
➜ zookeepers echo 2 > data/2182/myid
➜ zookeepers echo 3 > data/2183/myid
运行
依次执行启动命令即可。
➜ ~ zookeeper-3.4.9/bin/zkServer.sh -h
ZooKeeper JMX enabled by default
Using config: /Users/lpe234/zookeeper-3.4.9/bin/../conf/zoo.cfg
Usage: zookeeper-3.4.9/bin/zkServer.sh {start|start-foreground|stop|restart|status|upgrade|print-cmd}
启动脚本
zk.sh
#!/usr/bin/env bash
# set -e
case "${1}" in
start)
echo "start"
cd /Users/lpe234/zookeepers/zookeeper-3.4.9-2181 && bin/zkServer.sh start
cd /Users/lpe234/zookeepers/zookeeper-3.4.9-2182 && bin/zkServer.sh start
cd /Users/lpe234/zookeepers/zookeeper-3.4.9-2183 && bin/zkServer.sh start
;;
stop)
echo "stop"
zookeeper-3.4.9-2181/bin/zkServer.sh stop
zookeeper-3.4.9-2182/bin/zkServer.sh stop
zookeeper-3.4.9-2183/bin/zkServer.sh stop
;;
status)
zookeeper-3.4.9-2181/bin/zkServer.sh status
zookeeper-3.4.9-2182/bin/zkServer.sh status
zookeeper-3.4.9-2183/bin/zkServer.sh status
;;
*)
echo "only support {start|status|stop}"
;;
esac
查看运行情况
➜ zookeepers ./zk.sh start
start
ZooKeeper JMX enabled by default
Using config: /Users/lpe234/zookeepers/zookeeper-3.4.9-2181/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
ZooKeeper JMX enabled by default
Using config: /Users/lpe234/zookeepers/zookeeper-3.4.9-2182/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
ZooKeeper JMX enabled by default
Using config: /Users/lpe234/zookeepers/zookeeper-3.4.9-2183/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
➜ zookeepers ./zk.sh status
ZooKeeper JMX enabled by default
Using config: /Users/lpe234/zookeepers/zookeeper-3.4.9-2181/bin/../conf/zoo.cfg
Mode: follower
ZooKeeper JMX enabled by default
Using config: /Users/lpe234/zookeepers/zookeeper-3.4.9-2182/bin/../conf/zoo.cfg
Mode: leader
ZooKeeper JMX enabled by default
Using config: /Users/lpe234/zookeepers/zookeeper-3.4.9-2183/bin/../conf/zoo.cfg
Mode: follower
- 从零开始学人工智能-Python·决策树(三)·节点
- .net程序员使用Oracle新手上路指南
- python的函数(二):作用域
- 在win2008 r2中安装windows phone 7开发工具
- TFS2008 + Windows2003 + Sql2005 安装注意事项
- 机器学习(五)——k-近邻算法进一步探究
- openstack上创建vm实例后,状态为ERROR问题解决
- 完整部署CentOS7.2+OpenStack+kvm 云平台环境(5)--问题解决
- 全国首创!今天起,杭州“刷”的一下就能直接乘地铁
- 2018年前端技术趋势预览
- SQL SERVER 内存分配及常见内存问题 简介
- 深入浅出事件流处理NEsper(一)
- 微软官方提供的用于监控MS SQL Server运行状况的工具及SQL语句
- 生成人工智能:创意专家新的强大工具
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 搭建prometheus+grafana监控SpringBoot应用入门
- 掘金15W沸点简单分析(二)
- 老生常谈SpringAop日志收集与处理做的工具包
- 线程间通信wait---notify
- Ubuntu安装Oracle Java8
- CentOS7安装Git
- RocketMQ-环境搭建(单master模式-ubuntu版)
- 使用Web.xml配置SpringMvc(同时使用xml配置文件)
- 第七节:Activiti6.0——Task的变量使用
- 第八节:Activiti6.0——启动流程相关
- 第九节:Activiti6.0——ReceiveTask接收信号、中间信号捕获事件和中间消息捕获事件的流程推进
- SpringBoot——全局异常捕获和自定义异常
- RTSP协议视频平台EasyNVR接入到EasyNVS管理平台后无法显示RTMP及RTSP视频流地址问题
- SpringBoot——配置logback日志
- Istio 运维实战系列(2):让人头大的『无头服务』-上