JAVA项目从运维部署到项目开发(二.ZooKeeper)
一、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 编辑配置文件
集群模式下一些常见的参数配置:
- data目录
用于存放进程运行数据。 - data目录下的myid文件
用于存储一个数值,用来作为该ZooKeeper Server进程的标识。 - 监听Client端请求的端口号
- 监听同ZooKeeper集群内其他Server进程通信请求的端口号
- 监听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:
参考资料:
JAVA项目从运维部署到项目开发(二.ZooKeeper)的更多相关文章
- JAVA项目从运维部署到项目开发(五. Nginx)
<Nginx与Nginx-rtmp-module搭建RTMP视频直播和点播服务器>一文简单介绍了关于直播数据流的nginx相关配置,下面简单介绍下各种项目如何配置nginx. web项目. ...
- JAVA项目从运维部署到项目开发(一.Jenkins)
一.Jenkins的介绍 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作, 旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. 二.功能 Jen ...
- JAVA项目从运维部署到项目开发(六. Jenkins之静态页面)
用Git托管静态页面代码,通过Jenkins部署静态页面,是再方便不过的了.本文将介绍如何通过Jenkins部署最新的静态页面代码. 一.Jenkins的配置 1.设置项目名称.参数(环境.分支)等 ...
- JAVA项目从运维部署到项目开发(四. Tomcat)
一.关于中文乱码问题 文件目录:/conf/server.xml 将相关语句改为: <Connector port="8008" protocol="HTTP/1. ...
- JAVA项目从运维部署到项目开发(三.Redis)
一.Redis的介绍 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.它通常被称为数据结构服务器,因为值(va ...
- Linux运维企业架构项目实战系列
Linux运维企业架构项目实战系列 项目实战1—LNMP的搭建.nginx的ssl加密.权限控制的实现 项目实战2—LVS.nginx实现负载均衡系列2.1 项目实战2.1—实现基于LVS负载均衡集群 ...
- [原创]上海好买基金招高级Java技术经理/运维主管/高级无线客户端开发等职位(内推)
[原创]上海好买基金招高级Java技术经理/运维主管/高级无线客户端开发等职位(内推) 内部推荐职位 高级JAVA技术经理: 岗位职责: 负责项目管理(技术方向),按照产品开发流 ,带领研发团队,制定 ...
- 阿里云运维部署工具AppDeploy详细教程
AppDeploy是一个通过SSH实现的命令行工具,可完成应用部署和远程运维管理.当前工具实现为两个版本:普通版(伪代码描述语言)和Python版.Python版使用Python语法规则,可实现您的各 ...
- spring-boot-plus运维部署(八)
spring-boot-plus运维部署 线上部署 打包环境为prod mvn clean package -Pprod 打包后的目录 cd target/spring-boot-plus-1.2.0 ...
随机推荐
- IdentityServer4(5)- 包和构建
包和构建 IdentityServer有许多Nuget包组件 IdentityServer4 nuget | github 包含IdentityServer核心对象模型.服务和中间件.默认只包含了基于 ...
- 【原创】c++拷贝初始化和直接初始化的底层区别
说明:如果看不懂的童鞋,可以直接跳到最后看总结,再回头看上文内容,如有不对,请指出~ 环境:visual studio 2013(编译器优化关闭) 源代码 下面的源代码修改自http://blog.c ...
- Linux软件包管理之源码包、脚本安装包
目录 1.源码包和RPM包的区别 RPM包和源码包默认安装位置: 由于安装位置不同带来的影响 2.源码包安装 ①.安装准备 ②.安装注意事项 ③.安装源码包 3.源码包卸载 4.脚本安装包 5.总结 ...
- YARN集群的mapreduce测试(一)
hadoop集群搭建中配置了mapreduce的别名是yarn [hadoop@master01 hadoop]$ mv mapred-site.xml.template mapred-site.xm ...
- Python爬虫之使用Fiddler+Postman+Python的requests模块爬取各国国旗
介绍 本篇博客将会介绍一个Python爬虫,用来爬取各个国家的国旗,主要的目标是为了展示如何在Python的requests模块中使用POST方法来爬取网页内容. 为了知道POST方法所需要传 ...
- 第一册:lesson seventy nine.
原文: Carol's shopping list. What are you doing Carol? I'm making a shopping list Tom. What do we need ...
- 学习记录---C# Web程序获取客户端电脑信息
问题描述:由于最近项目需要使用Mac地址与注册码进行加密处理,但是又因为Web程序的局限性不能获取客户端电脑系统信息,当然IE浏览器有一个activex控件他是可以通过Js在前端代码中直接获取的,局限 ...
- Java中net.sf.json包关于JSON与对象互转的坑
在Web开发过程中离不开数据的交互,这就需要规定交互数据的相关格式,以便数据在客户端与服务器之间进行传递.数据的格式通常有2种:1.xml:2.JSON.通常来说都是使用JSON来传递数据.本文正是介 ...
- VirtualBox VM启用3D加速
默认情况下,是不支持 DX3D的, 我们运行 dxdiag 看到的情况如下: 安装时也提示需要安全模式下才能安装 VirtualBox 必须在Windows安全模式下才能成功安装3D加速驱动。 重启系 ...
- hive drop 报错
执行 drop database xxxx cascade; 删除数据库的时候报错. 报错信息:Execution Error, return code 1 from org.apache.hadoo ...