您的位置:首页 > 其它

分布式管理器~Zookeeper初识

2018-06-10 23:06 134 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fengruiqi/article/details/80646067

原先写过一篇关于Zookeeper的安装基础,关于安装的基础咱们这里就不说了,可以看上一篇文章。在这里说点关于Zookpeer的基础知识。了解其内部是怎么构造了。方便大家对其操作。

分布式协调技术

平常大家开发程序,大部分都是关注与逻辑的实现,基本上逻辑实现之后,程序就万册好难过了,但是我们在大型架构下,进程与进程之间的通信是十分有必要的,我们的程序就涉及到了分布式开发。多台服务器提供相同的服务给客户。
在分布式系统中,我们可能只有一个资源请求,但是三台服务器都需要该请求资源时,系统会怎么分配呢?在这里就涉及到新的概念:协调器,通过协调器来进行任务的分配保证某个服务队该资源的独占。
- 对资源独占效果就是让其他服务器不能访问到独占的资源,我们在程序中就能保证多个进程或者服务器对资源访问的临界特性,其实总的来说在Java中我们学到锁的知识从,一个程序扩展到了大型程序上。

  • 该锁被称为分布式锁,并且该锁是分布式协调技术实现的重点内容。

Zookeeper简介

Zookpeer 是一种 分布式应用程序所设计的。更专注于任务协助,并不提供任何锁的接口活通用数据接口。
- 高可用,高性能且一致的开源协调服务。
- 通过配置维护,组服务,分布式队列,分布式通知/协调等
- 实现同步,命名服务。
在上面的几点可以看出Zookeeper 其实简化的分布式开发流程,同来提供程序的敏捷健壮的方案。他不适合用来存储海量的数据。在后面程序应用中我们可以看到现在很多分布式数据库操作是建立在Zookeeper上的。比如Hbase,Hadoop 等。

主从结构

在分布式开发过程中,一个通常使用的架构就是:主-从架构。

在主从架构中,我们主节点负责跟踪从点的状态和任务执行情况,并且分配任务给从节点。在主从结构中,需要满足以下的需求:
1. 主节点的选举:只有选择出主节点才能执行下面的任务分配等内容。
2. 崩溃检测: 对于从节点的失去连接和崩溃需要有检测的能力,如果从节点失败,我们需要主节点把派给这个从节点的任务让主节点从新分配去完成。
3. 组员管理处理: 主节点必须知道哪些节点是存活的,还有能执行任务的节点。方便在分配任务的时候进行分配
4. 元数据管理: 主节点和从节点必须通过可靠的方式来保存分配的状态和执行状态的能力。
在Zookeeper上提供了实现这些原语的方式,通过这些Zookeeper帮助我们能顺利的进行分布式的开发。

分布式需要解决的问题

在分布式系统上,行业内有个著名的定律

FLP( Fischer,Lynch,Patterson)定律,该定律在分布式系统上证明了 进程无法在比特的配置上形成一致条件,分别为一致性,可用性,分区容错性,在Zookeeper上保证了一致性,可用性,和只能可读状态的分区容错性。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: