码迷,mamicode.com
首页 > 编程语言 > 详细

zookeeper集群搭建及Leader选举算法源码解析

时间:2018-11-26 23:16:41      阅读:319      评论:0      收藏:0      [点我收藏+]

标签:zab   oop   lol   config   搭建   出错   安全性   了解   协议   

一.zookeeper概述

1.zookeeper 简介
  zookeeper 是一个开源的分布式应用程序协调服务器,是 Hadoop 的重要组件。
  zooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务器,是 Google 的Chubby 一个开源的实现,是 Hadoop 和 Hbase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、集群管理等。ZooKeeper的目标就是封装复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
2.ZK 基本概念
  对于 Zookeeper 的学习,首先需要了解一些基本概念。
1).三类角色
  为了避免 Zookeeper 的单点问题,zk 也是以集群的形式出现的。zk 集群中的角色主要有以下三类:
  a.Leader:zk 集群写请求的唯一处理者,并负责进行投票的发起和决议,更新系统状态。Leader 是很民主的,并不是说其在接收到写请求后马上就修改其中保存的数据,而是首先根据写请求提出一个提议,在大多数 zkServer 均同意时才会做出修改。
  b.Follower:接收客户端请求,处理读请求,并向客户端返回结果;将写请求转给 Leader;在选主(选 Leader)过程中参与投票。
  c.Observer:可以理解为无选主投票权的 Flollower,其主要是为了协助 Follower 处理更多的读请求。如果 Zookeeper 集群的读请求负载很高,或者客户端非常非常多,多到跨机房,则可以设置一些 Observer 服务器,以提高读取的吞吐量。

  Leader是写请求的唯一处理者,原因是:写请求关乎数据的一致性,由Leader写,然后广播给其他子节点。
2).三种模式
  Zookeeper 的核心是广播,这个机制保证了各个 zkServer 间数据的同步,即数据的一致性。实现这个机制的协议叫做 ZAB 协议,即 Zookeeper Atomic Broadcast,ookeeper 原子广播协议。ZAB 协议有三种模式:恢复模式、同步模式和广播模式。
  a.恢复模式:在服务重启过程中,或在 Leader 崩溃后,就进入了恢复模式,要恢复到 zk集群正常的工作状态。
  b.同步模式:在所有的 zkServer 启动完毕,或 Leader 崩溃后又被选举出来时,就进入了同步模式,各个 Follower 需要马上将 Leader 中的数据同步到自己的主机中。当大多数zkServer 完成了与 Leader 的状态同步以后,恢复模式就结束了。所以,同步模式包含在恢复模式过程中。
  c.广播模式:当 Leader 的提议被大多数 zkServer 同意后,Leader 会修改自身数据,然后会将修改后的数据广播给其它 Follower。

 

二.zookeeper 的安装与集群搭建
一.安装单机zookeeper
  对于系统安全性、实时性要求不是很高的系统,为了节约成本,使用单机 Zookeeper 作为协调服务器也是可以的。
1.准备工作
1).克隆并配置主机
  克隆一台干净的主机,并修改配置。
  a.修改主机名:/etc/hostname
  b.修改网络配置:/etc/sysconfig/network-scripts/ifcfg-ens33
2).下载zookeeper安装包
  在http://zookeeper.apache.org官网下载。

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

2.上传安装包
  将下载的 Zookeeper 安装包上传到 zk04 主机的/usr/tools 目录。

 

zookeeper集群搭建及Leader选举算法源码解析

标签:zab   oop   lol   config   搭建   出错   安全性   了解   协议   

原文地址:https://www.cnblogs.com/flyingeagle/p/10023262.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!