zookeeper(go-zookeeper)

1. 单机搭建

https://blog.csdn.net/weixin_42207486/article/details/80647802

下载 wget http://apache.fayea.com/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz

不要占用8080端口,容易冲突, vi zoo.cfg

admin.serverPort=8081

2.集群搭建

Zookeeper集群中节点个数一般为奇数个(>=3),若集群中Master挂掉,剩余节点个数在半数以上时,就可以推举新的主节点,继续对外提供服务, 注意: 每个节点的配置文件都要一样的

https://www.cnblogs.com/wrong5566/p/6056788.html

3.eclipse 插件

http://www.massedynamic.org/eclipse/updates/ 

4.运行管理/错误定位

4.1运行日志

log4j用于记录zookeeper集群服务器运行日志,该日志的配置地址在conf/目录下的log4j.properties文件中

zookeeper.out是一个控制台的重定向文件(如果使用supervisort启动zookeeper,可能被重定向为其他目录下的文件名),

可以直接修改为log4的日志文件https://www.iteye.com/blog/yangyoupeng-cn-fujitsu-com-1922459

 

4.节点 node

//flags有4种取值:

//0:永久,除非手动删除

//zk.FlagEphemeral = 1:短暂,session断开则改节点也被删除

//zk.FlagSequence = 2:会自动在节点后面添加序号,如

//3:Ephemeral和Sequence,即,短暂且自动添加序号

Create(path string, data []byte, flags int32, acl []ACL)

注意: /mytest/node  和 /mytest/node/ 不相等, 创建节点的时候,父节点一定要存在,不支持创建多级目录节点

 

5.go-zookeeper

conn := getConnect(zkList)   //具备自动重连功能,每次返回一个新连接

 

bexit, _, ech, err := conn.ExistsW(path1)  //判断节点是否存在,func (c *Conn) ExistsW(path string) (bool, *Stat, <-chan Event, error), bexit:节点是否存在 不存在返回false, err:访问是否出错,如果节点不存在ech也不为空,当创建该节点的时候,该通道会有值

只会生效一次

 

Event的读取一定要在其他协程,否则会阻塞

go watchCreataNode(ech)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值