Zookeeper開發(fā)環(huán)境配置
為什么要配置
經常在開發(fā)的時候捡遍,特別是分布的時候我們經常使用的就是Zookeeper
牵寺,但是很多人都是在配置了zoo.cfg
以后都是直接撞擊CMD
窗口医寿,不是說不對,我是覺得現(xiàn)在誰的開發(fā)機不是4G內存
以上,那為啥不配置成服務呢吉拳?每次一個窗口看著都是LOW
必備知識以及工具
下載commons-demon工具
這個工具是Apache給我們開發(fā)的一款win下通用服務軟件豺撑,為了的就是解決我們在制作啟動服務的時候遇到困難烈疚。
Commons Daemon可以將一個普通的java
應用程序作為linux
或windows
的后臺服務,以daemon
方式運行聪轿。例如Tomcat就是使用這個項目來實現(xiàn)作為Linux和Windows的服務啟動/停止的爷肝。
它分為兩個部分,一部分是用C寫的,與操作系統(tǒng)交互灯抛,另一部分是用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保存目錄即可!
配置系統(tǒng)變量
我們需要在系統(tǒng)中添加
ZOOKEEPER_SERVICE
乏奥,ZOOKEEPER_HOME
兩個環(huán)境變量摆舟,為了使給我們后邊的BAT腳本添加運行命令的時候可以使用,替代常常的地址邓了!
①添加系統(tǒng)變量ZOOKEEPER_SERVICE
變量名稱填寫:ZOOKEEPER_SERVICE
變量值填寫:zookeeper_service
②添加系統(tǒng)變量ZOOKEEPER_HOME
變量名稱填寫:ZOOKEEPER_HOME
變量值填寫:點擊瀏覽文件夾恨诱,完后選擇zookeeper文件夾
新建運行創(chuàng)建服務命令腳本
prunsrv.exe "http://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
命令很簡單,不解釋了骗炉,看看上邊發(fā)的文檔地址照宝,五分鐘內絕對明白,把這個文件保存為
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
為啥這么寫请垛,這個編寫是按照我們服務創(chuàng)建腳本催训,說白了這個就是根據
PID
標識,完后KILL掉進程完事宗收!這個必須保存為:
zkServerStop.cmd
因為我們啟動腳本里寫的是這個名字