Zookeeper开发环境配置
为什么要配置
经常在开发的时候,特别是分布的时候我们经常使用的就是Zookeeper
,但是很多人都是在配置了zoo.cfg
以后都是直接撞击CMD
窗口,不是说不对,我是觉得现在谁的开发机不是4G内存
以上,那为啥不配置成服务呢?每次一个窗口看着都是LOW
必备知识以及工具
下载commons-demon工具
这个工具是Apache给我们开发的一款win下通用服务软件,为了的就是解决我们在制作启动服务的时候遇到困难。
Commons Daemon可以将一个普通的java
应用程序作为linux
或windows
的后台服务,以daemon
方式运行。例如Tomcat就是使用这个项目来实现作为Linux和Windows的服务启动/停止的。
它分为两个部分,一部分是用C写的,与操作系统交互,另一部分是用java
写的,提供Daemon接口。Apache commons daemon对win32
和Unix平台都有支持,win32
平台使用procrun, Unix平台使用jsvc
咱们使用下载地址:http://archive.apache.org/dist/commons/daemon/binaries/windows/
说明文档:http://commons.apache.org/proper/commons-daemon/procrun.html
建议下载最新版本,为啥不知道,反正新的一般情况下比老的相对情况下是比较好用
其实有一个更好用的工具:java service wrapper
但是要钱,我直接否决了
Wrapper下载地址:<http://wrapper.tanukisoftware.com/doc/english/download.jsp>
Zookeeper安装
安装没有任何好讲解的,下载解压缩,完后修改
conf
文件夹配置文件,添加集群或者其他,新建一个DATA保存目录即可!
配置系统变量
我们需要在系统中添加
ZOOKEEPER_SERVICE
,ZOOKEEPER_HOME
两个环境变量,为了使给我们后边的BAT脚本添加运行命令的时候可以使用,替代常常的地址!
①添加系统变量ZOOKEEPER_SERVICE
变量名称填写:ZOOKEEPER_SERVICE
变量值填写:zookeeper_service
②添加系统变量ZOOKEEPER_HOME
变量名称填写:ZOOKEEPER_HOME
变量值填写:点击浏览文件夹,完后选择zookeeper文件夹
新建运行创建服务命令脚本
prunsrv.exe "//IS//%ZOOKEEPER_SERVICE%" ^
--DisplayName="Zookeeper (%ZOOKEEPER_SERVICE%)" ^
--Description="Zookeeper (%ZOOKEEPER_SERVICE%)" ^
--Startup=auto --StartMode=exe ^
--StartPath=%ZOOKEEPER_HOME% ^
--StartImage=%ZOOKEEPER_HOME%\bin\zkServer.cmd ^
--StopPath=%ZOOKEEPER_HOME%\ ^
--StopImage=%ZOOKEEPER_HOME%\bin\zkServerStop.cmd ^
--StopMode=exe --StopTimeout=5 ^
--LogPath=%ZOOKEEPER_HOME% --LogPrefix=zookeeper-wrapper ^
--PidFile=zookeeper.pid --LogLevel=Info --StdOutput=auto --StdError=auto
命令很简单,不解释了,看看上边发的文档地址,五分钟内绝对明白,把这个文件保存为
Zookeeper_Install_Service.bat
直接管理员选线运行就可以了.
备注:^
这个就是换行的意思,win下的标识符
新建关闭服务脚本
Zoookeeper
没有给我们提供关闭脚本,知识提供了一个CMD
的开启脚本,所以我们需要自己建立一个,主要是机制问题,关闭窗口,就终止进程,他本身就没有提供服务,怎么可能在提供关闭脚本。
@echo off
setlocal
TASKLIST /svc | findstr /c:"%ZOOKEEPER_SERVICE%" > %ZOOKEEPER_HOME%\zookeeper_svc.pid
FOR /F "tokens=2 delims= " %%G IN (%ZOOKEEPER_HOME%\zookeeper_svc.pid) DO (
@set zkPID=%%G
)
taskkill /PID %zkPID% /T /F
del %ZOOKEEPER_HOME%/zookeeper_svc.pid
endlocal
为啥这么写,这个编写是按照我们服务创建脚本,说白了这个就是根据
PID
标识,完后KILL掉进程完事!这个必须保存为:
zkServerStop.cmd
因为我们启动脚本里写的是这个名字
网友评论