1.部署
本章节主要讲述如何部署ZooKeeper,包括以下三部分的内容:
1. 系统环境
2. 集群模式的配置
3. 单机模式的配置
系统环境和集群模式配置这两节内容大体讲述了如何部署一个能够用于生产环境的ZK集群。如果仅仅是想在单机上将ZK运行起来,进行一些开发与测试,那么第三部分或许是你的菜。
1.1系统环境
1.1.1平台支持
平 台 |
运行client |
运行server |
开发环境 |
生产环境 |
GNU/Linux |
√ |
√ |
√ |
√ |
Sun Solaris |
√ |
√ |
√ |
√ |
FreeBSD |
√ |
ⅹ,对nio的支持不好 |
√ |
√ |
Win32 |
√ |
√ |
√ |
ⅹ |
MacOSX |
√ |
√ |
√ |
ⅹ |
注:运行client是指作为客户端,与server进行数据通信,而运行server是指将ZK作为服务器部署运行。
1.1.2软件环境
ZooKeeper Server是一个Java语言实现的分布式协调服务框架,因此需要6或更高版本的JDK支持。集群的机器数量方面,宽泛的讲,其实是任意台机器都可以部署运行的,注意,这里并没有说一定要奇数台机器哦!通常情况下,建议使用3台独立的Linux服务器构成的一个ZK集群。
1.2集群模式的配置
为了确保ZooKeeper服务的稳定与可靠性,通常是搭建成一个ZK集群来对外提供服务。关于ZooKeeper,需要明确一个很重要的特性:集群中只要有过半的机器是正常工作的,那么整个集群对外就是可用的(本文下面就用“过半存活即可用”来代替这个特性吧^-^)。正是基于这个特性,建议是将ZK集群的机器数量控制为奇数较为合适。为什么选择奇数台机器,我们可以来看一下,假如是4台机器构成的ZK集群,那么只能够允许集群中有一个机器down掉,因为如果down掉2台,那么只剩下2台机器,显然没有过半。而如果是5台机器的集群,那么就能够对2台机器down掉的情况进行容灾了。