ZooKeeper-能干什么?

Nc

首先集群管理的话,想看每一台的状态必须要连接到那台机器之后才能看。
有一个小工具,可以再一台集群内的服务器,查看任意一个Zookeeper的状态,那就是NetCat。

yum install nc -y会自动将nc 以及依赖环境都安装完毕。

1.查看状态
echo stat | nc 127.0.0.1 2181查看哪个节点(想看哪个节点,就写那个节点的ip即可)
2.查看状态
echo ruok|nc 127.0.0.1 2181
返回imok表示已经启动。
3.查看详细信息
echo conf | nc 127.0.0.1 2181 ,输出相关服务配置的详细信息。

clientPort=2181 dataDir=/home/software/zookeeper-3.4.7/tmp/version-2 dataLogDir=/home/software/zookeeper-3.4.7/tmp/version-2
tickTime=2000
maxClientCnxns=60 最大可连接客户端数量
minSessionTimeout=4000 =》tickTime*2
maxSessionTimeout=40000=》tickTime*20 所以API的sessionTimeout要生效,需要介于阈值之间。
serverId=1 zk服务器编号
initLimit=10
syncLimit=5
electionAlg=3(1,2,3)3=》fast paxos
electionPort=3888
quorumPort=2888
peerType=0

ZooKeeper插件

用于elipse中,其他ide可以搜索相关教程,这个插件可以在idea中查看zookeeper里面的相关内容及节点。
1.打开Eclipse=》help=》install new software
2.点击add,添加如下的url:
http://www.massedynamic.org/eclipse/updates/
3.选择好插件,三个全部勾选。然后点击next进行安装,(有一步是接收许可协议)
4.调出Zookeeper的视图
5.新建Zookeeper连接服务,并填好name(1706zk)和RootPath(/),然后点击add,添加Zookeeper的连接服务器的IP地址

ZooKeeper-能干什么?

以下相关实现只提供思路,就不写详细代码拉。

1.实现消息订阅和发布

1.创建一个znode节点 /data
2.其他订阅节点监听/data 节点的数据变化事件
3.如果有事件发生,就获取/data节点的数据

2实现集群整体的配置信息管理

比如某一个机器的配置信息发生变化,其他机器的配置信息也实现同步更改。 实现思路同上

3.集群管理

能够快速检测出集群里节点的状态
实现思路:
临时节点+监听机制

4.实现分布式消息的协调通知(屏障)

例如:成绩排名案例:前三台机器成绩统计完,第四台机器开始做最后排名
实现思路:
①每台机器注册两个节点,分别是临时和持久的。 当机器处理完后,临时节点消失 第四台机器检测三台机器临时节点状态变化,最后都消失后,去对应的持久节点下拿成绩数据成绩排名的服务器监听三个临时节点,当三个临时节点都消失后(三台机器的成绩统计已经完成),就可以执行成绩排名。
在从三个持久节点上获取统计好的成绩数据,然后进行排名。
②利用子节点思想来做+监听

5.实现集群的负载均衡

注意这里的负载均衡是细粒度的负载均衡,选择内存/cup剩余空间比较大的,优先承接服务。

1.利用zk检测到每台的机器的负载情况,指标是:cpu和内存。
2.每台客户端定期将自己的负载情况指标发给zk
3.zk根据收集到指标后,根据负载情况做相关业务控制

6.实现分布式锁

实现思路:
利用顺序节点来实现,比如4个客户端争相抢注 /source 顺序节点。最先抢注的顺序号最小, 就分配给这个节点资源

7.实现命名服务

实现思路:
利用znode路径的唯一性,来做命名服务。

zk不适用于做的事情

不能用zk存储大量数据。znode树是维系在内存里的,如果数据大,会吃掉大量内存。

Zk脑裂的预防
为选举的Leader分配递增id,根据id的大小去判断是否老Leader或新Leader,如果是老Leader, 就不接受其指令。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值