
分布式与zk
qq_20009015
欢迎关注我的公众号《程序员与王子喵》
展开
-
分布式环境下的数据一致性问题与协议
1.分布式环境下的数据一致性 在分布式环境下 机器越多,就难以保证各个机器之间的数据都是一样的,各个节点的机器总会因为 机器故障/网络延迟/处理能力不同 等原因 导致同一份数据,在不同的机器中,很难达到一致的情况。 2.CAP理论 CAP理论 即 C 一致性 A 可用性 P 分区容错性 一致性是指,一个集群中N台机器的数据都是一样的。 可用性 是指, 这个集群可以正常对外提供服务的能力 分区容错性,比如说这个集群中 ,某个机器挂了,对整个集群的影响程度。 很容易就可以发现,这三个标准,无法同时满足。 比原创 2020-10-23 02:25:43 · 697 阅读 · 0 评论 -
分布式笔记(九)zookeeper技术内幕之数据结构和watcher机制
1.zk的数据结构就像是一颗树,每个节点叫Znode,是zk数据结构中最小的数据结构,Znode可以保存数据,也可以在节点下再创建子节点。 2.ZXID 是事务ID,是一个64位的数字,是全局唯一的事务ID,可以体现事务的先后顺序,前32位是leader周期,后32位是递增顺序,每一个ZXID对应一次更新操作。 3.zk的节点有三大类,临时节点,持久节点,顺序节点。 这三种可以组合形成如下: 持久...原创 2020-04-29 01:34:45 · 437 阅读 · 0 评论 -
分布式笔记(八)zookeeper的应用场景
zookeeper的典型应用场景 zk是一个典型的发布/订阅模式的分布式数据管理与协调框架,可以使用其进行分布式的数据发布订阅。 场景有:数据发布/订阅 负载均衡 命名服务 分布式协调/通知 集群管理 master选举 分布式锁和分布式队列 zk基于ZAB算法的实现,该框架较好的保证分布式环境中数据的一致性,是解决分布式一致性问题的利器。 hadoop hbase kafka 等分布式...原创 2020-04-21 00:43:06 · 406 阅读 · 0 评论 -
分布式笔记(七)zookeeper的开源客户端zkclien和Curator
zk的开源客户端zkclient和Curator 原生的zookeepe java客户端使用起来略为繁琐,比如说需要自己定义watcher ,watcher使用之后需要不断的进行注册。 删除节点时需要先删除子节点,需要递归创建父节点等等。 而开源客户端则对zk的java客户端进行了封装,更得更容易使用,操作更简便,甚至提供了开箱即用的 基于zk封装好的分布式锁,选举leader等工具。 zkCl...原创 2020-04-19 00:54:48 · 347 阅读 · 0 评论 -
分布式笔记(六)zookeeper的使用
zk的部署和操作介绍 1.下载好对应的压缩包 2.配置zoo.cfg 在conf目录下的zoo.cfg文件里面配置 tickTime=2000 datdaDir=/var/lib/zookeeper clientPort=2181 initLimit=5 synclimit=2 server.1=IP1:2888:3888 server.2=IP2:2888:3888 server.3=IP3:2...原创 2020-04-17 01:17:18 · 327 阅读 · 0 评论 -
分布式笔记(五)ZAB协议详解
ZAB的流程: ZAB的节点有三种状态 following:当前节点是跟随者,服从leader节点的命令 leading:当前节点是leader 负责协调事务 election/looking:节点处于选举状态 正在寻找leader 代码实现中,还有一个observing状态 这是zookeeper引入Observe之后加入的,observer不参与选举,是只读节点。 节点的持久状态: histo...原创 2020-04-11 20:54:28 · 398 阅读 · 0 评论 -
分布式笔记(四)ZAB协议的原子广播和崩溃恢复
ZAB协议: zookeeper原子广播协议 是其数据一致性的核心算法,并非是完全paxos协议。 是为分布式协调服务专门设计的一种支持崩溃恢复的原子广播协议,并非是像paxos那样 是一个通用的分布式一致性协议。 基于该协议 zookeeper实现了一种主备模式的系统架构来保持集群中各副本之间数据的一致性。 过程为: 所有事务请求必须由一个全局唯一的服务器来协调处理,这样的服务器叫leader...原创 2020-04-09 00:40:35 · 651 阅读 · 0 评论 -
分布式笔记(三)什么是zookeeper
zookeeper介绍 apache zookeeper是apache hadoop的子项目 发展而来,zk为分布式应用提供高效可靠的分布式协调服务。 提供了诸如 统一命名服务,配置管理和分布式锁等分布式服务的基础服务。 在分布式数据一致性,使用了ZAB(zookeeper atomic broadcast)协议,并非直接使用paxos协议。 zookeeper是一个高效可靠的分布式协调服务,设计...原创 2020-04-06 01:16:18 · 264 阅读 · 0 评论 -
分布式笔记(二)paxos协议与chubby
Paxos协议 paxos协议是目前业内使用最广泛的一致性协议。 paxos解决的问题: 将所有的节点都写入同一值,且写入后不再改变 三个参与者: proposer 提出议案, accpetor接受议案, learner 推广议案 paxos保证: 1.只有提出的议案能被选中,没有议案提出就不会被选中 2.多个被提出的议案 只有一个会被选中 3.议案被选中后 就不能变了。 约束条件: p1:acc...原创 2020-04-06 01:15:03 · 606 阅读 · 0 评论 -
分布式笔记(一)分布式系统与一致性协议(二阶段提交和三阶段提交)
一致性的级别: 强一致性: 最高级别的一致性,写入什么 读出来就是什么,用户体验最好,但是实现起来对性能影响最大。 弱一致性: 数据成功写入后,不保证立刻就可以读到,但是可以保证在某个时间级别后 (比如说秒级)达到一致性。 又分为 会话一致性:只保证写入的同一个客户端会话中可以读到一致值,但其他会话不能读到(会话缓存) 用户一致性: 只保证同一个用户写入的 ,该用户可以读到,不保证其他用户 (...原创 2020-04-06 01:13:22 · 464 阅读 · 0 评论