zookeeper服务的搭建

zookeeper官网中提供了两个包,具体区别如下:

包名 处理方式
apache-zookeeper-版本号-bin.tar.gz 可以直接执行
apache-zookeeper-版本号.tar.gz 需编译后执行

目前最新版的是3.5.6,环境最低要求为jdk1.8
服务默认读取配置为:conf/zoo.cfg,安装包自带了配置文件示例:zoo_sample.cfg。
单机部署时,只需要配置如下几个配置项即可:

配置项 说明
tickTime 心跳检测周期
initLimit 连接数
clientPort 客户端请求监听端口
dataDir 数据存放路径

如果要搭建集群,需要注意一下几点:

  1. 在配置的dataDir路径中创建myid文件,文件内容为id(即节点编号,全局唯一);
  2. 在conf/zoo.cfg中添加配置:server.id=IP:PORT1:PORT2,其中PORT1:zookeeper间通讯使用,只有leader监听此端口;PORT2:选举leader用,id为节点编号;
  3. 启动无顺序要求,所有节点服务启动即可;
  4. 由于zookeeper选举Leader算法的要求,节点个数必须为奇数个。

从V3.5.5版本开始,内嵌了jetty服务器,默认使用8080端口,可以通过在conf/zoo.cfg添加“admin.serverPort=指定端口”的方式修改,或者添加“admin.serverPort=指定端口”取消该服务。

相关命令:

  • 启动zookeeper服务:bin/zkServer.sh start
  • 停止zookeeper服务:bin/zkServer.sh stop
  • 查看zookeeper服务状态(集群属性也可展示):bin/zkServer.sh status

集群节点角色说明:

  1. Leader:整个ZooKeeper集群工作机制中的核心,其主要工作有以下两个:
    - 事务请求的唯一调度和处理者,保证集群事务处理的顺序性
    - 集群内部各服务器的调度者
  2. Follower:是ZooKeeper集群状态的跟随者,其主要工作有以下三个
    - 处理客户端非事务请求,转发事务请求给Leader服务器
    - 参与事务请求Proposal的投票
    - 参与Leader选举投票
  3. Observer:是Zookeeper自3.3.0版本开始引入的一个全新的服务器角色。该服务器充当了一个观察者的角色—其观察Zookeeper集群的最新状态变化并将这些状态变更同步过来。Observer服务器在工作原理上和Follower基本一致,对于非事务请求,都可以进行独立的处理,而对于事务请求,则会转发给Leader服务器进行处理。和Follower唯一的区别在于,Observer不参与任何形式的投票,包括事务请求Proposal的投票和Leader选举投票。简单讲,Observer服务器只提供非事务服务,通常用于在不影响集群事务处理能力的前提下提升集群的非事务处理能力。
配置Observer节点的方法:
	在配置文件中添加:peerType=observer
	在所有Server的配置文件中,配置成Observer模式的server的那行配置追加:observer,例如:server.1:localhost:2181:3181:observer
发布了11 篇原创文章 · 获赞 0 · 访问量 638

猜你喜欢

转载自blog.csdn.net/fate_destiny/article/details/103066152
今日推荐