zookeeper学习系列(二)zookeeper简介(续)

1 一致性

<1>读操作
由于性能的原因,读操作由zookeeper服务的内存提供,而且不参与写操作的全局排序,这一特性
会导致使用机制交流的客户端与zookeeper状态不一致。
为了避免这种情况,可以在读之前能进行sync,它会强制它脸上的zookeeper与leader保持一致。
##但是sync是异步执行,更新可能会在读之后完成。


<2>写操作
在ensemble中,跟随者通过更新号来滞后领导者,结果导致只有大部分而不是岁所有的resemble
元素进行更新就能提交了。
<<1 将客户端连接到跟着领导者的zookeeper服务器上,客户端连接到领导者,但是不能控制它,
跟随者执行读操作,领导者执行写操作。
<<2 每一个对znode的更新都会给定一个唯一的全局标示(zxid),更新是被排序的,小的先执行,
对于zookeeper说,这是分布式系统中的排序的唯一标准。
<<3 顺序一致性:任何一个客户端的更新都会按照他们的发送顺序。
<<4 原子性:成功或者失败。客户端知道结果
<<5 单系统映像:在一次会话中,无论系统连接哪台服务器,它与系统看见的视图都是一样的。


2 会话

<1>zookeeper客户端与ensemble服务器列表配置保持一致,启动时,依次连接知道成功或者失败。
连接即建立新的会话。
无论什么时候,当会话空闲一定时间,客户端有Ping程序请求保持活跃。


3 time

<1>tick time是zookeeper中的基本时间长度,为ensemble里的服务器所使用,用来定义对于
交互运行的调度。
<2>当会话超时时,每个会话都有服务器给定的唯一身份和密码,如果建立连接时,传输给
zookeeper,能恢复会话。
<3>zookeeper的ensemble越大,会话超时时间应该越长。连接超时,读取超时,ping周期都为一个
函数定义在ensemble的一个函数中。因此当ensemble扩大,这些时间会变小。


4 状态

<1>与zookeeper服务建立连接时,为conneting状态,连接建立后,为connected状态,断开连接,
为disconnected状态。
<2>zookeeper的watcher对象的俩个职责。
<<1 了解zookeeper状态的改变。传递给zookeeper对象构造函数的watcher被用来检测对象的改变。
<<2 了解znode的改变。使用watcher的专门实例(通过将其传递到对于的读操作上)。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值