这可能是搭建Zookeeper集群介绍最全的文章
顶
原
荐
字数 1479
阅读 255
收藏 4
1.搭建
怎么搭建单机无安全校验的就不说了,百度一搜一大堆。这里我就说说怎么搭建一个生产环境可用的Zookeeper集群
Docker方式不太建议,要考虑的东西比较多,如果要用 Docker 方式还是比较建议自建镜像,假如是Docker专家可以忽略本句。
以下介绍的都是 Linux 服务器下搭建(Winserver服务器的也是雷同)先操作单机,再copy到其他机器。下载完Zookeeper(下称zk)后,进入zk解压目录下的conf文件夹,zoo_sample.cfg是zk的配置文件实例,Copy一个出来命名为zoo.cfg zk默认会读这个配置。
配置详解:
- tickTime :心跳发送的间隔时间,用于判定Client是否断开(默认2000ms)
- dataDir :zk数据文件保存目录,zk是基于文件来存储配置的
- clientPort :这个端口就是客户端连接 zk 服务器的端口,zk 会监听这个端口,接受客户端的访问请求。
- initLimit:初始化Client时的重试次数(默认5次),判断Client是否连接成功就是发initLimit次心跳,每tickTime发一次,如果都失败了代表这个Client连接失败了
- syncLimit:这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 2*2000=4 秒
- server.n = ip:port:electPort: n代表每个实例的序号,ip是实例的ip地址,port是实例间交互的端口,electPort是重新选举Leader时的端口 (集群方式才用到, 单机可以注释这个配置,之前问过大神,大神表示zk搭建至少3个实例比较稳当,这个与它自身的选举机制有关)
- maxClientCnxns: 最大Client连接数,业务需求并发大,机器比较强劲的就设置大点咯(默认60)
- autopurge.snapRetainCount:自动清理snapshot和事务日志时保留的文件数(默认3个)
- autopurge.purgeInterval: 清理频率(单位小时, 默认是0代表不开启,大于0代表开启`)
如需使用Hosts请在每个实例所在的机器设置Hosts(/etc/hosts) 如:zk1 127.0.0.1
下面贴一下我的简单配置:
# 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=/data/zookeeper/data # the port at which the clients will connect clientPort=2181 server.1=zk1:2888:3888 server.2=zk2:2888:3888 server.3=zk2:2888:3888
2. 启动
zk的脚本都放在zk/bin 目录下
zkServer.sh 服务操作脚本(只介绍常用命令)
# 后台启动 ./zkServer.sh start # 前台启动 ./zkServer.sh start-foreground # 停止 ./zkServer.sh stop # 重启 ./zkServer.sh restart # 查看状态 (其中 Mode代表是Leader节点还是Follow节点) ./zkServer.sh status
zkCli.sh 是zk的客户端,默认连接本机实例,可以通过进入ZkCli后执行 ZooKeeper -server host:port cmd args 去操作其他远程实例
# 进入zk客户端命令行操作 ./zkCli.sh
列举下一些常用命令(其他命令可以)
# 查看根目录下节点 ls /path get /path # 查看节点状态/属性 stat /path # 删除节点 rmr /path # 删除节点下数据 delete /path [version]
3. 权限验证
zk的权限验证有3种方式,这里只介绍比较常用的两种方式(先搭建好集群,权限设置会同步到整个集群):
第一步:新建节点 (如果给已有节点添加权限可忽略)
create /path "test" #创建节点和别名
1. 通过IP限制
#进入zkCli后的权限验证设置命令 后面会介绍permission参数 setAcl /path ip:192.168.1.1:[permissions] #也可以是ip段 setAcl /path ip:192.168.0.0/16:[permissions] #验证 本机校验是通过的。可以用另一个ip段的来验证 ls /path
2. 通过用户+密码控制
这种方式的密码是BASE64(SHA1(原文密码))出来的密文,怎样生成保证成功的密文呢
#通过这个类计算出密文(对应的版本可以从zk/lib目录下看到) java -cp ./zookeeper-3.4.13.jar:./lib/log4j-1.2.17.jar:./lib/slf4j-log4j12-1.7.25.jar:./lib/slf4j-api-1.7.25.jar org.apache.zookeeper.server.auth.DigestAuthenticationProvider test:123456
#test是用户名 password是密码BASE64(SHA1(原文密码)) setAcl /path digest:test:password:[permission]
# 校验是否成功,现在肯定是成功的,但是重新进入zkCli就会失败了 ls /path #进入zkCli执行addAuth命令,这是类似登录的功能 test是用户名,123456是刚刚的原文 addauth digest test:123456 #然后再执行 ls命令 这时候就成功 ls /path
permission介绍
permission是用cdrwa来表示 如:
setAcl /path digest:test:password:cdw
每个字母分别代表的是:
- CREATE(c): 创建权限,可以在在当前node下创建child node
- DELETE(d): 删除权限,可以删除当前的node
- READ(r): 读权限,可以获取当前node的数据,可以list当前node所有的child nodes
- WRITE(w): 写权限,可以向当前node写数据
- ADMIN(a): 管理权限,可以设置当前node的permission
4.总结
网上很多类似的文章,不过我觉得太分散了,当要搭建一个zk集群时需要找几篇文章来看,现在就是 将搭建+集群+校验 放在一起介绍,一篇文章可以直接上生产了,如果喜欢的欢迎收藏点赞,有错的地方希望可以指出来我马上修改。
© 著作权归作者所有
共有人打赏支持
上一篇: 做个情商高的程序员
下一篇: 解决模板消息回调的困扰
相关文章 最新文章
本篇文章,博主将分享zookeeper集群环境搭建的整个过程。在分享之前,博主还得说明些注意事项。首先,zookeeper是 java 编写的应用程序,所以在安装之前需要先安装java环境。 本次可能用到的操...
em_aaron
07/29
0
0
我本人曾经使用过 ZooKeeper 作为 Dubbo 的注册中心,另外在搭建 Solr 集群的时候,我使用到了 ZooKeeper 作为 Solr 集群的管理工具。 前几天,总结项目经验的时候,我突然问自己 ZooKeeper ...
51CTO技术栈
09/11
0
0
一、kafka单节点单broker环境搭建 系统环境:centos 64位 mini 虚拟机:Virtual Box 如果你不熟悉virtual box的使用,不知道如何安装centos系统,可以参考之前发布的文章: 快速掌握基于Vir...
极客慧
今天
0
0
前言 其实zookeeper在一般的公司的应用不太多,注册中心、分布式锁、选举等等。之前用dubbo,就会用到zookeeper作为服务注册中心,现在转向springcloud,就很少用zookeeper了。但是近期研究分...
田心双木
09/05
0
0
Solr集群,即是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 。 当一个系统的索引数据量少的时候是不需要使用SolrCloud的,当索引量很大,搜索请求并发很高...
yuanlaijike
04/12
0
0
没有更多内容
加载失败,请刷新页面
加载更多摘要: 近日,阿里云重磅发布PostgreSQL 10 高可用本地SSD盘版,相比原 9.4 版本又新增了JSONB、BRIN索引、GROUPING SETS/CUBE/ROLLUP、UPSERT等多项功能。 2015年,阿里云宣布正式推出RDS f...
阿里云云栖社区
27分钟前
4
0
一、目前对账的算法: 1、从上游渠道(银行、银联等金融机构)获取对账文件,程序逐行解析入库 2、在存储过程中,以上游对账文件的表为基准,程序逐行读取并与我们系统的交易记录/账务记录(...
辉煌霸猪
29分钟前
2
0
到此, 所有关于class文件格式的重要内容都已经讲解完了, 不敢说面面俱到, 但是敢说大部分重要的内容都包含在内了。前前后后用了9篇博客来专门讲解class文件结构, 为什么花那么多的时间和...
xtof
30分钟前
1
0
反射:运行时的类信息 运行时类型信息使得你可以在程序运行时发现和使用类型信息 1. Class对象 通过Class对象可以在运行时发现一个对象完整的类继承结构 类是程序的一部分,每一个类都会有一...
不学无数的程序员
47分钟前
2
0
cd /opt/gopath/src/github.com/hyperledger/ git clone https://github.com/hyperledger/fabric.git 下载fabric源码 cd /opt/gopath/src/github.com/hyperledger/ $ git clone https://git......
八戒八戒八戒
52分钟前
2
0
没有更多内容
加载失败,请刷新页面
加载更多以上所述就是小编给大家介绍的《这可能是搭建Zookeeper集群介绍最全的文章 原 荐》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Elasticsearch 集群搭建和集群原理
- Zookeeper学习系列【二】Zookeeper 集群章节之集群搭建
- Spark集群环境搭建
- Zookeeper搭建集群
- FastDFS集群搭建
- Zookeeper集群环境搭建
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
算法:C语言实现
塞奇威克 / 机械工业出版社 / 2006-9 / 69.00元
本书是Sedgewick彻底修订和重写的C算法系列的第一本。全书分为四部分,共16章,第一部分“基础知识”(第1-2章)介绍基本算法分析原理。第二部分“数据结构”(第3-5章)讲解算法分析中必须掌握的数据结构知识,主要包括基本数据结构,抽象数据结构,递归和树。一起来看看 《算法:C语言实现》 这本书的介绍吧!