Zookeeper 系统学习一

个人备忘调重要的记录博客。

分布式协作中难点

  1. 保证节点的高可用(节点故障),Ps: zk 有四种节点,自己普及。
  2. 数据的一致性。
  3. 通讯异常。
  4. 网络分区。

以上都可以看出来,在一个分布式系统中,zk 的作用就是做协调调度,简单讲,他是用来分布式系统中沟通的桥梁,这也正是zk 的优点特性所在。基础普及请自行学习。

Zookeeper 简介
分布式协作,zookeeper 是google 的chubby 项目开源实现,最早是hadoop的子项目,案例:小米米聊,淘宝Taokeeper其实类似zookeeper 。

Zookeeper 解决了哪些问题
1. Master 节点管理
解决问题:Master高可用(挂掉以后,谁来负责工作),保证唯一。例如:amq 集群levelDB下通过zk(三节点集群)做实现。当一个主的挂掉, 冗余的slave要立马接管主节点的任务。
2. 配置文件管理,配置中心
解决问题:统一配置文件存放zk, 由zk 统一分发。,例如:dubbo 的配置 中心。
3. 发布与订阅
发布者(producer)将数据发布到zk 节点上,供订阅者(consumer)动态获取
4. 分布式锁
临时顺序节点,临时解决死锁,顺序用来提供监听的策略,实现性能的提升。具体实现可以看我往期的博客。作用:保证数据的一致性,安全。
5. 集群的管理
Worker 集群监控。当某台机器挂掉之后,把工作转移到其他机器上。

三节点伪集群搭建

看我往期博客。伪集群

Zk Shell
这里写图片描述

Zk API

zookeeper , zkClient , curator 。越往后越好用。

wacher 监听器,监听节点。

分布式发展历程
(1)
这里写图片描述
(2)
这里写图片描述

(3)
这里写图片描述

10000 个并发,可能20%是写,80%是读,那么我们需要对读进行缓存。

(4)

这里写图片描述

(5)

此架构是为了解决数据库的压力。

这里写图片描述

mysql 的并发在 300 – 700 ;

(6)

淘宝,天猫。

这里写图片描述

分库分表 :
mysql 300–700 之间, 高并发放1000 qps , 日均pv 千万级别。

7000 10台20台mysql 。

全国省份 user 5+++亿用户。

user拆分 province 5亿/32 ==== 记录数大大缩小 。
华东区 = province1, 2 , 3 , 4 dbserver1
华北区 = province5 , 6 , 7 , 8 dbserver2

业务华东区, 华北区, 西北区 。

(7)

这里写图片描述

(8)

这里写图片描述

最终形态,业务拆分,每个业务都可以在进行上面的分布式部署。

商品搜索,支付系统,个人系统,商家系统,热点计算 == 》 淘宝电商平台 。

(1)商品搜索1 商品搜索2 商品搜索3。。。。。。。商品搜索n台 server
(2)支付系统1 支付系统2 支付系统3。。。。。。。支付系统n台 server 。
(3)个人系统1 个人系统2 个人系统3 。。。。。。。个人系统n台 server 。

各个服务器之间 : 数据一致性, 和 服务器集群master选举等,都需要zk 去协调。

分布式技术详解

特点 : 并发性 , 分布性,缺乏全局时钟 , 对等性 , 故障 肯定会发生 。

分布式事物

小编知道的:
(1)补偿模式,A – B 都可以进行补偿。
(2)atomic 框架,基于数据库操作的实物,性能差。
(3)模仿数据库的三阶段式提交 TCC , conmit , rallback() ;
(4) 基于 mq 自身提供的事物 。

CAP 理论

一致性(Consistency)
可用性 (Availability)
分区容错性 (网络分区)Partition tolerance

CAP 理论的特点, 就是 CAP只能满足其中2条。

这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_16681279/article/details/79519611