1. Zookeeper了解
Zookeeper有能力实现集中配置的能力,举个例子,应用app1 做集群配置,配置3个节点,把app1的配置统一放置zookeeper server /APP1上,所有的app1应用启动就对节点/APP1进行监控,并实现回调方法Watcher,那么在/APP1上数据发生变化的时候,每个app应用节点就会收到通知,Watcher方法被执行,则app1的应用就可以实时得到修改的配置。
Zookeeper 自身可以做集群配置,可以预防由于单点故障导致的信息崩溃问题。
Zookeeper 数据结构类似标准的文件系统
[img]
[/img]
Zookeeper数据结构有如下这些特点:
1. 每个子目录项如 NameService 都被称作为 znode,这个 znode 是被它所在的路径唯一标识,如 Server1 这个 znode 的标识为 /NameService/Server1 |
2. znode 可以有子节点目录,并且每个 znode 可以存储数据,注意 EPHEMERAL 类型的目录节点不能有子节点目录 |
3. znode 是有版本的,每个 znode 中存储的数据可以有多个版本,也就是一个访问路径中可以存储多份数据 |
4. znode 可以是临时节点,一旦创建这个 znode 的客户端与服务器失去联系,这个 znode 也将自动删除,Zookeeper 的客户端和服务器通信采用长连接方式,每个客户端和服务器通过心跳来保持连接,这个连接状态称为 session,如果 znode 是临时节点,这个 session 失效,znode 也就删除了 |
5. znode 的目录名可以自动编号,如 App1 已经存在,再创建的话,将会自动命名为 App2 |
6. znode 可以被监控,包括这个目录节点中存储的数据的修改,子节点目录的变化等,一旦变化可以通知设置监控的客户端,这个是 Zookeeper 的核心特性,Zookeeper 的很多功能都是基于这个特性实现的。 |
2. Zookeeper与redis比较
Zookeeper 不是一个通用的数据库或大型数据存储,而是管理协调数据,
结合软创系统的配置信息,配置信息量不会非常大,完全在可控范围内,同时需要稳定运行,消除单点宕机故障,读取速度不是太大的影响点,综上考虑采用zookeeper作为配置管理中心比较合适。
基于上面描述,使用zookeeper实现我们的配置中心是可行的
3. Zookeeper 安装及使用
3.1 安装(单机)
单机安装非常简单,具体步骤如下:
1. 使用zookeeper3.3.6版本,解压zookeeper-3.3.6.tar.gz至本地目录
2. 配置zoo.cfg(将自带的zoo_sample.cfg copy并改名为zoo.cfg)
# The number of milliseconds of each tick
#心跳时间,客户端与zookeeper server之间的心跳时间
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take 集群配置时,配置zookeeper接受客户端(客户端是指follower服务器,而不是client连接server的客户端) 初始化连接最长能接受的多少个心跳时间间隔数
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement 这个是集群配置时 follower与leader之间的请求应答时间
syncLimit=5
# the directory where the snapshot is stored. zookeeper保存数据目录
dataDir=D:/workspace/config-cache/zookeeper/zookeeper-3.3.6/data/zookeeper
# the port at which the clients will connect 客户端连接zookeeper server的端口
clientPort=2181
3. 启动zookeeper server
执行bin目录下zkServer.cmd
3.2 安装(集群)
配置zookeeper集群(或者在单机上配置伪集群)
本机设置集群,copy zookeeper-3.3.6 到另外一个目录
1. 设置hosts文件,设置server对应的ip
127.0.0.1 zkserver01
127.0.0.1 zkserver02
2. 修改配置文件zoo.cfg
#cluster config
server.1=zkserver01:2000:2001
server.2=zkserver02:2002:2003
解释一下上面的配置 server.1=zkserver01:2000:2001
1:表示第几号服务器,与myid中内容一致
zkserver01: 是server01 的ip地址,或者使用hosts中设置的主机名
2000:表示的是这个服务器与集群中的 Leader 服务器交换信息的端口
2001:表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口
另外,在zoo.cfg文件中,如果在同一台机器上设置集群,clientPort需要设置不同的端口号
3. 添加myid文件
在zoo.cfg 配置的dataDir路径下添加文件myid(文件名),文件内容就是上面的第几号服务器的值
4. 启动集群
执行server01 的zkServer.cmd
执行server02的zkServer.cmd
先执行的server01 在server02启动之前会抛出异常,随着server02启动之后趋于正常,异常可以忽略
3.3 使用demo
Demo中包含两个类Executor 和 DataMonitor 负责监听zookeeper某个节点,如果该节点数据发生变化,则dataMonitor会有所反应,然后把最新的data写入文件,并调用执行本地命令。
Zookeeper的watcher是单次有效,如果需要每次变化都能通知client,需要在client接受到变化之后再次注册watcher
if (path != null && path.equals(znode)) {
// Something has changed on the node, let's find out
zk.exists(znode, true, this, null);
}
Zookeeper中watcher概念及特性可以查阅zookeeperProgrammers.pdf文档
单机zkserver执行Executor 的时候设置args: zkserver01:2181 / F:/app/log.txt hostname
集群执行的时候设置的hostPort 略有不同,zkserver01:2181, zkserver02:3181 / F:/app/log.txt hostname
zookeeper-client.zip为java project ,解压后import 到workspace即可
分享到:
相关推荐
zookeeper之分布式环境搭建:Apache ZooKeeper分布式环境搭建教程; zookeeper之分布式环境搭建:Apache ZooKeeper分布式环境搭建教程; zookeeper之分布式环境搭建:Apache ZooKeeper分布式环境搭建教程; ...
zookeeper之分布式环境搭建:深入解析ZooKeeper分布式环境搭建+编程知识+技术开发; zookeeper之分布式环境搭建:深入解析ZooKeeper分布式环境搭建+编程知识+技术开发; zookeeper之分布式环境搭建:深入解析...
zookeeper环境搭建.md
linux下zookeeper集群环境搭建详细图文教程,简单易使用
### ZooKeeper基础知识与...通过这些步骤,用户不仅能够了解如何在本地环境中快速部署ZooKeeper,还能够掌握如何构建一个高可用的分布式ZooKeeper集群。这为后续利用ZooKeeper进行分布式应用程序开发打下了坚实的基础。
### Zookeeper环境搭建与应用场景详解 #### 一、Zookeeper简介及重要性 **Zookeeper**作为Hadoop生态系统中的一个重要组成部分,主要负责管理和协调分布式应用程序中的各种组件和服务。它的核心功能在于提供一种...
### Zookeeper环境搭建部署...以上就是Zookeeper环境搭建部署的相关知识点,涵盖了从安装配置到基本使用的全过程。通过这些步骤,用户可以快速地搭建起一个稳定可靠的Zookeeper服务环境,并进行简单的数据管理和操作。
在本文中,我们将详细介绍如何在单台机器上搭建 Zookeeper 的伪分布式集群。伪分布式集群意味着在同一台机器上运行多个 Zookeeper 实例,它们各自独立并模拟分布式环境的行为。 首先,确保你的服务器已经安装了 JDK...
Zookeeper集群搭建是一个重要的任务,尤其在分布式系统中,它作为协调服务,为高可用性和数据一致性提供了基础。Zookeeper是Apache的一个开源项目,用于处理分布式应用中的命名服务、配置管理、集群同步、选举等功能...
大数据综合实验环境搭建(3个集群、Zookeeper、Hive、HBase) 本资源摘要信息主要对大数据综合实验环境搭建进行了详细的介绍,涵盖了 JDK 的安装和配置、免密码登录的设置、Zookeeper 的安装、Hive 和 HBase 的安装...
搭建Dubbo-Zookeeper环境的第一步是安装Zookeeper。下载并解压提供的"zookeeper-3.4.8.rar",按照官方文档进行配置。主要步骤包括:修改conf/zoo.cfg配置文件,设置数据存储目录,启动Zookeeper服务。确保Zookeeper...
### Zookeeper伪分布式集群环境搭建过程 #### 一、Zookeeper简介 ZooKeeper是一个分布式的、开源的应用程序协调服务,被广泛应用于多种分布式场景之中,例如配置维护、域名服务、分布式同步、组服务等。它能够提供...
**环境搭建步骤** 为了在全新环境中部署 dubbo+zookeeper,我们需要按照以下步骤操作: 1. **创建虚拟机账号和设置权限** 创建一个名为 admin 的用户,并赋予必要的权限,例如密码为 root,IP 地址为 192.168.1.xx...
### 单机环境搭建 1. 在 `/opt` 目录下创建一个名为 `zookeeper` 的文件夹,并设置所属用户为 `hc`: ```bash mkdir -p /opt/zookeeper chown -R hc:hc /opt/zookeeper ``` 2. 解压缩 Zookeeper 的最新版本到 ...
### Hadoop2.7.3+HBase1.2.5+ZooKeeper3.4.6搭建分布式集群环境详解 #### 一、环境说明与理解 - **环境概述**:文档介绍了如何通过Hadoop、HBase以及ZooKeeper来构建一个分布式的集群环境。这种环境主要用于处理大...
### 一.Zookeeper 伪集群环境搭建 在伪集群环境下,单台机器模拟多台服务器的行为。以下是搭建步骤: 1. **安装 Zookeeper**:将 Zookeeper 的安装包分别拷贝到三个不同的目录,例如 `/usr/local/zookeeper_...
在Windows环境下搭建Zookeeper集群是一项基础且重要的任务,特别是在分布式系统和大数据领域。Zookeeper作为一个高可用的分布式协调服务,广泛应用于配置管理、命名服务、分布式锁和集群管理等场景。下面将详细介绍...
二、Zookeeper环境搭建步骤 1. 安装Java环境:由于Zookeeper是基于Java开发的,所以首先确保系统安装了Java运行环境。 2. 下载Zookeeper:从官方网站获取最新版本的Zookeeper,解压到指定目录。 3. 配置环境变量:在...
**ZooKeeper环境搭建** ZooKeeper是一款分布式协调服务,由Apache基金会开发,广泛应用于分布式系统中的命名服务、配置管理、集群同步等场景。本文将详细介绍如何在本地环境中搭建ZooKeeper。 首先,我们需要理解...
### ZooKeeper分布式环境搭建详解 #### 一、ZooKeeper简介及应用场景 ZooKeeper是一个分布式协调服务,它主要用于在分布式环境中提供一致性服务。这些服务包括但不限于维护配置信息、命名服务、提供分布式同步机制...