(三)zookeeper事务一致,状态查看,观察者

1、原子广播,事务一致

  • zookeeper集群包含多个zookeeper服务,各个服务的数据必须保持一致
  • 选举成功后,首先做的就是数据同步:leader的数据同步到各个Follower,确保数据的一致性。
  • 每个zookeeper服务都可以接收读和写的请求。Follower会把写请求转给leader,由leader统一处理。leader会通过原子广播端口广播给其他节点,并收集每台服务器反馈信息。若有一半的服务成功,则此事务成功提交(过半性)。
  • 虽然过半性可能会导致部分zookeeper服务没有更新,但是当事务成功提交后,zookeeper底层会通过一定的机制,确保所有服务数据都更新成功。

2、通过NetCat工具查看Zookeeper集群服务状态

  • 下载NetCat工具,链接:https://pan.baidu.com/s/1Lle8FvxvFG8zxUqoMKYhGA  提取码:dihx
  • 安装NetCat: rpm -ivh nc-1.84-22.el6.x86_64.rpm
  • nc命令测试是否安装成功:

  • 使用nc工具查看集群的状态

echo stat | nc 127.0.0.1 2181 

echo ruok | nc 127.0.0.1 2181 
测试是否启动了该Server,若回复imok表示已经启动

echo conf | nc 127.0.0.1 2181 
输出相关服务配置的详细信息。

3、Observer观察者

观察者的特点:

  • 可以把某台zookeeper服务配置为观察者,那么这台服务不参与投票,只监听结果。
  • 观察者不是zookeeper集群的主要组件,可以故障和断开连接,不影响zk集群的可用性
  • 观察者在读和写上与 Follower一样
  • 观察者不参与投票,所以对于过半性,并不包含observer的服务

配置观察者:

  • 编辑配置文件conf/zoo.cfg,添加内容:peerType=observer
  • 修改每台zookeeper服务的zoo.cfg文件,把需要配置为观察者的服务修改为如下所示:

观察者的使用场景:不可控的地方可以用observer,不参与投票但是支持读和写。

  • 例如某个zookeeper集群,在中国和美国都需要使用,但美国网络不可控,中国网络可控
  • 显然,在美国部署时把服务配置为observer更合适

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值