zookeeper(二) 应用概述

基本概念

ZAB协议

客户端脚本

javaAPI

ZKClient & Curator

应用场景

        数据发布订阅

        负载均衡

        命名服务

        分布式协调/通知

        集群管理

     Master选举

        分布式锁

        分布式队列

        使用优化

(一)分布式基础知识

分布式的特点:分布性、对等性、并发性、缺乏全局时钟、故障总会发生

分布式环境下的各种问题:通讯异常、网络分区、成功失败超时三态、节点故障

从ACID到BASE的变化

一致性协议:

  • 2pc(请求处理-->提交确认)与3pc(事务处理能力询问-->处理后待提交-->提交确认)的特点及优缺点比较】
  • Paxos协议的原理及在Chubby、Hypertable上的实践。

(二)Zookeeper可以保证的分布式一致性特性:

顺序一致性:同一个客户端发起的事务请求,严格按其顺序处理

原子性:事务请求处理的原子性

单一视图:无论客户端连接到哪个服务器,看到的数据模型是一致的

可靠性:对事务的处理完成并反馈后,状态会一致保留直到被其他事务改变

实时性:一定时间段内,客户端最终一定能从服务器上读取到最新的数据状态

(三)Zookeeper中的核心概念/特性:

        全部存储在内存中的树形数据节点ZNode,分为持久(顺序)型与临时(顺序)节点(生命周期与客户端会话绑定),每个ZNode只能由一台服务器创建,且节点的sequential自增数字保障兄弟节点按顺序无重复

三种集群角色

1. Leader:

        处理事务请求并保证事务请求的顺序性(事务指能够改变Zookeeper服务状态的操作,一般包括数据节点的创建删除与内容更新、客户端会话创建与失效。每一个事务有全局唯一的ZXID);集群内部各服务器的调度

2. Follower:

        处理客户端非事务请求、转发事务请求给Leader、参与事务请求Proposal投票、参与Leader选举投票

3. Observer:

        只处理非事务服务,不参与任何形式的投票

说明:ZXID是一个64位的数字,其中低32位针对客户端每一个事务请求,Leader服务器在产生一个新的事务proposal时进行+1,高32位代表本轮Leader周期的epoch标号,当新选举一个Leader后会对此epoch+1以区分出Leader周期的变化。集群中拥有XZID最大的proposal的机器会成为Leader,因为它一定具有所有已经提交的提案。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值