zookeeper 集群配置

zookeeper 集群配置

简介

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

zookeeper 使用场景

  • 配置管理 集中式的配置管理在应用集群中是非常常见的,一般商业公司内部都会实现一套集中的配置管理中心,应对不同的应用集群对于共享各自配置的需求,并且在配置变更时能够通知到集群中的每一个机器。

  • 集群管理 应用集群中,我们常常需要让每一个机器知道集群中(或依赖的其他某一个集群)哪些机器是活着的,并且在集群机器因为宕机,网络断链等原因能够不在人工介入的情况下迅速通知到每一个机器

zookeeper 集群配置

本人测试用一台机器做集群,一台机器部署三个zookeeper.但是在生产环境中,你最好部署3,5,7个节点。部署的越多,可靠性就越高,当然最好是部署奇数个,偶数个不是不可以的,但是zookeeper集群是以宕机个数过半才会让整个集群宕机的,所以奇数个集群更佳。

目录结构为

F:\11-zookeeper-cluster\server01\data
F:\11-zookeeper-cluster\server01\logs
F:\11-zookeeper-cluster\server01\zookeeper

F:\11-zookeeper-cluster\server02\data
F:\11-zookeeper-cluster\server02\logs
F:\11-zookeeper-cluster\server02\zookeeper

F:\11-zookeeper-cluster\server03\data
F:\11-zookeeper-cluster\server03\logs
F:\11-zookeeper-cluster\server03\zookeeper
  1. 首先下载zookeeper

    http://124.205.69.164/files/407200000338A59F/mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.8/zookeeper-3.4.8.tar.gz

  2. 修改配置文件 ,将zookeeper/conf/zoo_sample.cfg重命名为zoo.cfg

  3. 打开后修改为

#

#The number of milliseconds of each tick
tickTime=2000
#The number of ticks that the initial 
#synchronization phase can take
initLimit=10
#The number of ticks that can pass between 
#sending a request and getting an acknowledgement
syncLimit=5
#the directory where the snapshot is stored.
dataDir=F:/11-zookeeper-cluster/server01/data #需要修改成对应的目录(01,02,03)
dataLogDir=F:/11-zookeeper-cluster/server01/logs #需要修改成对应的目录(01,02,03)
#the port at which the clients will connect
clientPort=2181 #三个的监听端口需要不一样 2081,2182,2183

#以下三个配置,三个节点都一样
server.1=localhost:8881:7771
server.2=localhost:8882:7772
server.3=localhost:8883:7773
创建myid文件

在每一个data下面创建一个myid文件(myid没有扩展名)
里边的内容是 server.X=localhost:8881:7771 中配置的X,例如第一个就是1,第二个就是2

配置参数解释
  • tickTime:发送心跳的间隔,单位:毫秒

  • dataDir:zookeeper保存数据的位置。

  • clientPort:客户端连接 Zookeeper 服务器的端口

  • syncLimit:这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 2*2000=4 秒

  • server.A=B:C:D:其中 A 是一个数字,表示这个是第几号服务器;B 是这个服务器的 ip 地址;C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。如果是伪集群的配置方式,由于 B 都是一样,所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。

启动

依次启动 server01,server02,server03

server01/bin/zkServer.cmd
server02/bin/zkServer.cmd
server03/bin/zkServer.cmd

一开始会报错,因为节点之间会互相连接,一开始起来的会连不上还没起来的,全部起来后就不会报错了

客户端连接的时候连接其中任意一个都可以,或者一般都是连接所有,保证不会出现单点故障

运行 zkServer.cmd status 可以查看节点的角色 是leader 还是follower

连接时连接任意一个节点都可以,但一般都是连接所有节点,保证没有单点故障。

例如
<bean id="serviceRegistry" class="cn.jialx.nettyrpc.registry.ServiceDiscovery">
    <constructor-arg name="registryAddress" value="127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183"/>
</bean>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值