当Crystal框架项目需要使用到Zookeeper服务时(如使用Dubbo RPC时,需要注册服务到Zookeeper),而独立部署和启动Zookeeper服务不仅繁琐,也容易出现错误。
在小型项目或开发阶段时,建议将Zookeeper服务内嵌到Crystal框架项目中启动。
分步指南
Crystal框架项目中引入crystal-extend-zookeeper模块即可,如下:
<dependency>
<groupId>com.gsoft.crystal</groupId>
<artifactId>crystal-extend-zookeeper</artifactId>
</dependency>
默认情况下,Zookeeper服务启动端口为2181,可以通过Crystal框架参数覆盖机制,重新配置如下参数:
zk.server.port=2181
zk.server.tickTime=1000
zk.server.baseDirectory=d:/zookeeper
zk.server.snapDirectory=d:/zookeeper/snaps
zk.server.logDirectory=d:/zookeeper/logs
zk.server.max.connections=4096
zk.server.baseDirectory参数未指定时,默认为系统临时文件夹;
zk.server.snapDirectory参数未指定时,默认为baseDirectory下的zookeeper/snaps;
zk.server.logDirectory参数未指定时,默认为baseDirectory下的zookeeper/logs;
启动项目时,Zookeeper服务将自动启动。
内嵌的Zookeeper服务为单机模式,需要集群的话,必须独立部署。