集群模式的配置
为了确保ZooKeeper服务的稳定与可靠性,通常是搭建成一个ZK集群来对外提供服务。关于ZooKeeper,需要明确一个很重要的特性:集群中只要有过半的机器是正常工作的,那么整个集群对外就是可用的(本文下面就用―过半存活即可用‖来代替这个特性吧^-^)。正是基于这个特性,建议是将ZK集群的机器数量控制为奇数较为合适。为什么选择奇数台机器,我们可以来看一下,假如是4台机器构成的ZK集群,那么只能够允许集群中有一个机器down掉,因为如果down掉2台,那么只剩下2台机器,显然没有过半。而如果是5台机器的集群,那么就能够对2台机器down掉的情况进行容灾了。 你可以按照以下步骤来配置一个ZK机器,更多详细步骤请查看《ZooKeeper快速搭建》: 1. 安装JDK。相关链接:http://java.sun.com/javase/downloads/index.jsp 2. 设置Java heap 大小。避免内存与磁盘空间的交换,能够大大提升ZK的性能,设置合理的heap大小则能有效避免此类空间交换的触发。在正式发布上线之前,建议是针对使用场景进行一些压力测试,确保正常运行后内存的使用不会触发此类交换。通常在一个物理内存为4G的机器上,最多设置-Xmx为3G。 3. 下载安装ZooKeeper,相关链接:http://zookeeper.apache.org/releases.html 4. 配置文件zoo.cfg。初次使用zookeeper,按照如下这个简单配置即可: 1. tickTime=2000 2. dataDir=/var/lib/zookeeper/ 3. clientPort=2181 4. initLimit=5 5. syncLimit=2 server.1=zoo1:2888:3888 6. server.2=zoo2:2888:3888 7. server.3=zoo3:2888:3888 本文后续章节会对这些参数进行详细的介绍,这里只是简单说几点: A. 集群中的每台机器都需要感知整个集群是由哪几台机器组成的,在配置文件中,可以按照这样的格式,每行写一个机器配置:server.id=host:port:port. 关于这个id,我们称之为Server ID,标识host机器在集群中的机器序号,在每个ZK机器上,我们需要在数据目录(数据目录就是dataDir参数指定的那个目录)下创建一个myid文件,myid中就是这个Server ID数字。 B. 在ZooKeeper的设计中,集群中任意一台机器上的zoo.cfg文件的内容都是一致的。因此最好是用SVN把这个文件管理起来,保证每个机器都能共享到一份相同的配置。 5. 关于myid文件。myid文件中只有一个数字,即一个Server ID。例如,server.1 的myid文件内容就是―1‖。注意,请确保每个server的myid文件中id数字不同,并且和server.id=host:port:port中的id一致。另外,id的范围是1~255。 6. 至此,配置文件基本ok,可以尝试使用如下命令来启动zookeeper了: 1. $ java -cp zookeeper.jar:lib/slf4j-api-1.6.1.jar:lib/slf4j-log4 j12-1.6.1.jar:lib/log4j-1.2.15.jar:conf \ org.apache.zookeeper.server.quorum.QuorumPeerMainzoo.cfg 注意,不同的ZK版本,依赖的log4j和slf4j版本也是不一样的,请看清楚自己的版本后,再执行上面这个命令。QuorumPeerMain类会启动ZooKeeper Server,同时,JMX MB也会被启动,方便管理员在JMX管理控制台上进行ZK的控制。这里有对ZK JMX的详细介绍:http://zookeeper.apache.org/doc/r3.4.3/zookeeperJMX.html. 另外,完全可以有更简便的方式,直接使用%ZK_HOME%/bin 1. ./zkServer.sh start 7. 连接ZK host来检验部署是否成功。 A. Java语言的话,可以通过运行这个命令来检测: 1. $ java -cp zookeeper.jar:lib/slf4j-api-1.6.1.jar:lib/slf4j-log4 j12-1.6.1.jar:lib/log4j-1.2.15.jar:conf:src/java/lib/jline-0.9.94.jar \ org.apache.zookeeper.ZooKeeperMain -server 127.0.0.1:2181 B. 如果是C语言的话,方法如下: 1. $ make cli_st 2. $ make cli_mt 然后按照的这样的方式连接ZK:$ cli_mt 127.0.0.1:2181。无论运行哪种客户端,最终都是一个类似于文件系统的命令行操作。 注意:除了上面这种检测方法,其实%ZK_HOME%/bin也有其它脚本,下面这个命令执行后,就进入了zookeeper树状结构的文件系统中。 1. ./zkCli.sh 另外,还有一种方式,能够查看ZK服务器当前状态,如下,这个能够很好的看出目前这个机器的运行情况了: 1. $ echo stat|nc localhost 2181 2. Zookeeper version: 3.4.3-1240972, built on 02/06/2012 10:48 GMT 3. Clients: 4. /127.0.0.1:40293[0](queued=0,recved=1,sent=0) 5. 6. Latency min/avg/max: 1/2/3 7. Received: 4 8. Sent: 3 9. Outstanding: 0 10. Zxid: 0×200000006 11. Mode: leader 12. Node count: 4 更多精彩内容请关注:http://bbs.superwu.cn 关注超人学院微信二维码: |
zookeeper集群模式的配置
时间: 2024-10-15 02:57:00
zookeeper集群模式的配置的相关文章
zookeeper集群模式配置
集群模式的配置 为了确保ZooKeeper服务的稳定与可靠性,通常是搭建成一个ZK集群来对外提供服务.关于ZooKeeper,需要明确一个很重要的特性:集群中只要有过半的机器是正常工作的,那么整个集群对外就是可用的(本文下面就用―过半存活即可用|来代替这个特性吧^-^).正是基于这个特性,建议是将ZK集群的机器数量控制为奇数较为合适.为什么选择奇数台机器,我们可以来看一下,假如是4台机器构成的ZK集群,那么只能够允许集群中有一个机器down掉,因为如果down掉2台,那么只剩下2台机器,显然没有
ActiveMQ + ZooKeeper 集群高可用配置
一. 准备条件: (1) 最好是有3台服务器[2台也行, 只是根据(replicas/2)+1 公式至少得2个ActiveMQ服务存在才能保证运行, 自己测试的时候麻烦点, 关掉其中一个, 再开启, 看会不会选举到另一个ActiveMQ服务, 多试几次可以看到效果] (2) ActiveMQ安装参考: ActiveMQ (3) ZooKeeper安装参考:ZooKeeper 二. 配置 : ActiveMQ根目录下的conf/activemq.xml, 原来默认如下: <persistenc
Zookeeper实战之嵌入式执行Zookeeper集群模式
非常多使用Zookeeper的情景是须要我们嵌入Zookeeper作为自己的分布式应用系统的一部分来提供分布式服务.此时我们须要通过程序的方式来启动Zookeeper.此时能够通过Zookeeper API的ZooKeeperServerMain类来启动Zookeeper服务. 以下是一个集群模式下启动Zookeeper服务的样例 这里假定我们执行Zookeeper集群的三台机器名分别为fanbinx1,fanbinx2,fanbinx3 首先是zoo.cfg配置文件 tickTime=200
Zookeeper实战之嵌入式运行Zookeeper集群模式
很多使用Zookeeper的情景是需要我们嵌入Zookeeper作为自己的分布式应用系统的一部分来提供分布式服务,此时我们需要通过程序的方式来启动Zookeeper.此时可以通过Zookeeper API的ZooKeeperServerMain类来启动Zookeeper服务. 下面是一个集群模式下启动Zookeeper服务的例子 这里假定我们运行Zookeeper集群的三台机器名分别为fanbinx1,fanbinx2,fanbinx3 首先是zoo.cfg配置文件 tickTime=2000
zookeeper集群安装与配置
1.解压zookeeper 2.在$ZOOKEEPER_HOME/conf下创建zoo.cfg文件(参考配置文件:zoo_sample.cfg),内容为: # CS通信心跳时间,Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳.tickTime以毫秒为单位 tickTime=2000 # LF初始化通信时限,集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数(tickTime的数量
ZooKeeper 集群模式安装
集群模式安装 一.伪集群部署 将D:\Program Files (x86)\zookeeper-3.4.8\conf\下的zoo.cfg 改成zoo1.cfg,内容改为: # 存储内存中数据库快照的位置,如果不设置参数,更新事务日志将被存储到默认位置. # 每一个文件路径和下面的对应,zk1 zk2 zk3 dataDir=F:\\zk\\tmp\\zk1 # 错误日志的存放位置 data
zookeeper 集群安装和配置
先主要介绍一下zoo.cfg的基本配置. tickTime=2000 initLimit=10 syncLimit=5 dataDir=/data dataLogDir=/datalog clientPort=2181 electionAlg=3 server.1=127.0.0.1:20881:30881 server.2=127.0.0.1:20882:30882 server.3=127.0.0.1:20883:30883 配置的基本信息 tickTime=2000:毫秒级的基本时间单位,
zookeeper集群的安装配置
zookeeper介绍 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护.名字服务.分布式同步.组服务等.这是百度百科上的一个介绍,有同学想要了解zookeeper的详细信息,可以看一下官方的文档和一些相关博客.本文只介绍如何安装zookeeper. zookeeper的安装配置 设定我们有三台服务器:hostname1,host
Zookeeper 2、Zookeeper的安装和配置(集群模式)
1.下载与解压 Zookeeper下载地址:http://www.apache.org/dyn/closer.cgi/zookeeper/ 下载完成以后解压到一个特定目录 2.Zooker配置 Zookeeper集群模式至少需要3台主机进行搭建,准备三台主机Serve1.Server2.Server3 » 在Zookeeper的conf目录下创建myid文件,server1机器的内容为:1,server2机器的内容为:2,server3机器的内容为:3 » 在conf目录下创建一个配置文件zoo