一、zookeeper的相关介绍

  点击查看

二、下载、安装与配置

  1.ZooKeeper官网下载地址(点击跳转),当前稳定版本为V3.4.12。Liniux下可以在指定目录,使用wget命令下载。

https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/stable/zookeeper-3.4.12.tar.gz

  2.解压下载的压缩包到当前目录

tar -xf ZooKeeper-3.4..tar.gz 

  3.配置zookeeper

    3.1单机模式

      3.1.1编辑配置文件

  在"conf"目录下,通过命令:

cp zoo_sample.cfg zoo.cfg

  新建一个名为"zoo.cfg'的文件,其中配置内容如下:

tickTime=
initLimit=
syncLimit=
dataDir=/Users/abel/redis/zookeeper/data
dataLogDir=/Users/abel/redis/zookeeper/log
clientPort=

  参数说明:

#tickTime: zookeeper中使用的基本时间单位, 毫秒值.
#dataDir: 数据目录. 可以是任意目录.
#dataLogDir: log目录, 同样可以是任意目录. 如果没有设置该参数, 将使用和#dataDir相同的设置.
#clientPort: 监听client连接的端口号.

       3.1.2 启动Zookeeper服务

  执行 sudo ./zkServer.sh start 命令,运行ZooKeeper Server进程,得到如图所示结果,表示后台运行ZooKeeper Server进程成功。

  注:命令 sh zkServer.sh status 连接成功验证Zookeeper 是否启动成功

  停止:sudo ./zkServer.sh stop

  非后台运行ZooKeeper Server进程执行命令:sudo ./zkServer.sh start-foreground

  3.2集群模式

    集群模式有两种形式:
      1)使用多台机器,在每台机器上运行一个ZooKeeper Server进程;
      2)使用一台机器,在该台机器上运行多个ZooKeeper Server进程。
    在生产环境中,一般使用第一种形式,在练习环境中,一般使用第二种形式。

      3.2.1 编辑配置文件

    集群模式下一些常见的参数配置:

    1. data目录
      用于存放进程运行数据。
    2. data目录下的myid文件
      用于存储一个数值,用来作为该ZooKeeper Server进程的标识。
    3. 监听Client端请求的端口号
    4. 监听同ZooKeeper集群内其他Server进程通信请求的端口号
    5. 监听ZooKeeper集群内“leader”选举请求的端口号
      该端口号用来监听ZooKeeper集群内“leader”选举的请求。注意这个是ZooKeeper集群内“leader”的选举,跟分布式应用程序无关。
      参数配置注意事项:
      1)同一个ZooKeeper集群内,不同ZooKeeper Server进程的标识需要不一样,即myid文件内的值需要不一样
      2)采用上述第2种形式构建ZooKeeper集群,需要注意“目录,端口号”等资源的不可共享性,如果共享会导致ZooKeeper Server进程不能正常运行,比如“data目录,几个监听端口号”都不能被共享
myid Data目录 Client Server Leader 配置文件
1 /z1/data 2181 2222 2223 z1.cfg
2 /z2/data 2182 3333 3334 z2.cfg
3 /z3/data 2183 4444 4445 z3.cfg

配置如下:

    # zx.cfg
tickTime=
initLimit=
syncLimit=
dataDir=/usr/myenv/zookeeper-3.4./zx/data
clientPort=218x
# server.x中的"x"表示ZooKeeper Server进程的标识
server.=127.0.0.1::
server.=127.0.0.1::
server.=127.0.0.1::

  注:

  • initLimit: zookeeper集群中的包含多台server, 其中一台为leader, 集群中其余的server为follower. initLimit参数配置初始化连接时, follower和leader之间的最长心跳时间. 此时该参数设置为5, 说明时间限制为5倍tickTime, 即5*2000=10000ms=10s.
  • syncLimit: 该参数配置leader和follower之间发送消息, 请求和应答的最大时间长度. 此时该参数设置为2, 说明时间限制为2倍tickTime, 即4000ms

      3.2.2 启动Zookeeper服务

  分别执行以下命令以运行上述配置的3个ZooKeeper Server进程:

  bin/zkServer.sh start deploy/z1/z1.cfg
bin/zkServer.sh start deploy/z2/z2.cfg
bin/zkServer.sh start deploy/z3/z3.cfg

      3.2.3 运行ZooKeeper命令行客户端

  执行命令建立ZooKeeper Client端到ZooKeeper集群的连接会话

bin/zkCli.sh -server 127.0.0.1:,127.0.0.1:,127.0.0.1:

参考资料:

  坑爹的ZooKeeper的错误

  Mac下ZooKeeper环境部署,Linux方法相同

JAVA项目从运维部署到项目开发(二.ZooKeeper)的更多相关文章

  1. JAVA项目从运维部署到项目开发(五. Nginx)

    <Nginx与Nginx-rtmp-module搭建RTMP视频直播和点播服务器>一文简单介绍了关于直播数据流的nginx相关配置,下面简单介绍下各种项目如何配置nginx. web项目. ...

  2. JAVA项目从运维部署到项目开发(一.Jenkins)

    一.Jenkins的介绍 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作, 旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. 二.功能 Jen ...

  3. JAVA项目从运维部署到项目开发(六. Jenkins之静态页面)

    用Git托管静态页面代码,通过Jenkins部署静态页面,是再方便不过的了.本文将介绍如何通过Jenkins部署最新的静态页面代码. 一.Jenkins的配置 1.设置项目名称.参数(环境.分支)等 ...

  4. JAVA项目从运维部署到项目开发(四. Tomcat)

    一.关于中文乱码问题 文件目录:/conf/server.xml 将相关语句改为: <Connector port="8008" protocol="HTTP/1. ...

  5. JAVA项目从运维部署到项目开发(三.Redis)

    一.Redis的介绍 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.它通常被称为数据结构服务器,因为值(va ...

  6. Linux运维企业架构项目实战系列

    Linux运维企业架构项目实战系列 项目实战1—LNMP的搭建.nginx的ssl加密.权限控制的实现 项目实战2—LVS.nginx实现负载均衡系列2.1 项目实战2.1—实现基于LVS负载均衡集群 ...

  7. [原创]上海好买基金招高级Java技术经理/运维主管/高级无线客户端开发等职位(内推)

    [原创]上海好买基金招高级Java技术经理/运维主管/高级无线客户端开发等职位(内推) 内部推荐职位 高级JAVA技术经理: 岗位职责: 负责项目管理(技术方向),按照产品开发流 ,带领研发团队,制定 ...

  8. 阿里云运维部署工具AppDeploy详细教程

    AppDeploy是一个通过SSH实现的命令行工具,可完成应用部署和远程运维管理.当前工具实现为两个版本:普通版(伪代码描述语言)和Python版.Python版使用Python语法规则,可实现您的各 ...

  9. spring-boot-plus运维部署(八)

    spring-boot-plus运维部署 线上部署 打包环境为prod mvn clean package -Pprod 打包后的目录 cd target/spring-boot-plus-1.2.0 ...

随机推荐

  1. unittest单元测试框架

    unittest单元测试框架 概述: 单元测试框架主要用来完成以下三件事: 提供用例组织与执行:当测试用例只有几条时,可以不必考虑用例的组织,但是当用例达到成百上千条时,大量的用例堆砌在一起,就产生了 ...

  2. form详解

    form ** form常用属性 action 指定请求的地址 method 请求方式,如果是post形式发出的,表单的输入值就会放在请求体中,并且会进行编码处理,编码的方式在请求头中的Content ...

  3. html2canvas关于图片不能正常截取

    问题 首先说说遇到了什么问题.首先有这么一个需求.需要前端根据后端传过来数据,动态的生成图片.图片中的文案.背景图片.用户头像全部都是通过后端的接口获取.但是使用 html2canvas 生成的can ...

  4. MFC编程之数值调节按钮

    MFC编程之数值调节按钮 一丶数值调节按钮使用的注意事项 CSpinButtonCtrl类是MFC封装的数值调节按钮. 我们要使用数值调节按钮需要注意的事项. 1.数值调节按钮跟一个编辑框配合使用. ...

  5. 【SQL跟踪工具】SQL Profiler 跟踪器

    什么是SQL Profiler SQL Server Profiler 是一个功能丰富的界面,用于创建和管理跟踪并分析和重播跟踪结果. 事件保存在一个跟踪文件中,稍后试图诊断问题时,可以对该文件进行分 ...

  6. haproxy配置示例和需要考虑的问题

    HaProxy系列文章:http://www.cnblogs.com/f-ck-need-u/p/7576137.html haproxy是一个非常优秀的负载均衡工具,它的特性非常丰富,功能也非常非常 ...

  7. Apollo 6 — ConfigService 获取配置接口

    大纲 看本文之前,建议看看 apollo 的官方文档,特别是数据库设计文档. 主流程分析 2.1 聊聊细节 2.2 loadConfig() 加载配置 2.3 auditReleases() 方法记录 ...

  8. 记录.net使用ueditor富文本编辑器

    UEditor是什么 最近在在项目的时候使用到了百度的富文本编辑器.官网有详细的操作流程文档.这里我只是记录项目中常用到的一些事件.以便日后可以方便查询. UEditor是百度的一个javascrip ...

  9. mysql分页存储过程一步一步实现

    1. CREATE DEFINER=`root`@`localhost` PROCEDURE `P_HoverTreePages`( ), ) , ), ), ), IN `SortType` INT ...

  10. 利用OpenCV给图像添加中文标注

    利用OpenCV给图像添加中文标注 : 参考:http://blog.sina.com.cn/s/blog_6bbd2dd101012dbh.html  和https://blog.csdn.net/ ...