linux下的dubbo+zookeeper环境搭建

前言

之前我有使用window搭建过,但是对于服务器来说,linux是最适合的。Linux系统具有稳定且高效、免费或少许费用、安全的用户及文件权限策略、多用户、多任务、支持多线程和多CPU、漏洞少且快速修补、相对不耗费资源、可自由定制等具有优越性的特点。

此篇文章是依据于上一篇用windows搭建的改写,主要说说在linux上的配置问题。

正文

首先你需要在虚拟机上安装好jdk,并配置好java相关的环境变量$JAVA_HOME。ZooKeeper服务器是用Java编写创建,它运行在JVM上。可以使用java -version命令查看是否配置成功。

img

下载好linux的zookeeper安装包,我使用的是zookeeper-3.4.6.tar.gz,把它解压好。

与windows环境下一样,进入conf目录下,把zoo_sample.cfg这个文件名改成zoo.cfg。并用vi进入该文件, 把dataDir=/tmp/zookeeper修改成如下

dataDir=/home/sjw/zookeeper/zookeeper-3.4.6/data
dataLogDir=/home/sjw/zookeeper/zookeeper-3.4.6/logs
并在zookeeper根目录下创建对应的文件 这里有个问题要注意下,因为zookeeper需要用到2181端口,所以需要打开,不然会出现以下这个问题
DEBUG [localhost-startStop-1-SendThread(192.168.2.10:2181)] - Ignoring exception during shutdown input
java.nio.channels.ClosedChannelException
    at sun.nio.ch.SocketChannelImpl.shutdownInput(SocketChannelImpl.java:755)
    at sun.nio.ch.SocketAdaptor.shutdownInput(SocketAdaptor.java:421)
    at org.apache.zookeeper.ClientCnxnSocketNIO.cleanup(ClientCnxnSocketNIO.java:200)
    at org.apache.zookeeper.ClientCnxn$SendThread.cleanup(ClientCnxn.java:1246)
    at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1170)

解决方法
开启防火墙端口 2181 /sbin/iptables -I INPUT -p tcp --dport 2181 -j ACCEPT
将该设置添加到防火墙的规则中/etc/rc.d/init.d/iptables save

img

启动服务

然后即可到bin目录下启动服务zkServer.sh start

查看服务状态,是否启动 zkServer.sh status


接下来,在代码中,发布dubbo服务以及引用服务的时候,要把ip地址修改成你linux服务器的ip地址,比如我的

<dubbo:registry protocol="zookeeper" address="192.168.2.10:2181" />

具体代码可参考windows搭建的文章


下载dubbo-admin的war包,在Linux的tomcat里部署,把工程放在webapps下即可访问

img


设置zookeeper开机自启动

有两种方式可以实现开机自启动

第一种:直接修改/etc/rc.d/rc.local文件

/etc/rc.d/rc.local文件中需要输入两行,其中export JAVA_HOME=/usr/local/java/jdk1.7.0_72是必须要有的,否则开机启动不成功,大家根据自己JDK安装的位置自行更改。

另一行/home/sjw/zookeeper/zookeeper-3.4.6/bin/zkServer.sh start则是我们zookeeper的启动命令,当然这里的路径也是我给的例子。配置好之后,重启虚拟机,会发现已经可以开机自启了。

[root@zookeeper ~]# vim /etc/rc.d/rc.local   

#!/bin/sh  
#  
# This script will be executed *after* all the other init scripts.  
# You can put your own initialization stuff in here if you don't  
# want to do the full Sys V style init stuff.  

touch /var/lock/subsys/local  
export JAVA_HOME=/usr/local/java/jdk1.7.0_72  
/home/sjw/zookeeper/zookeeper-3.4.6/bin/zkServer.sh start  



第二种:把zookeeper做成服务

root用户下进入到/etc/rc.d/init.d目录下

img

新建一个zookeeper脚本,并添加执行权限

touch zookeeper
chmod +x zookeeper

img

接着用vi zookeeper来编辑这个文件

#!/bin/bash
#chkconfig:2345 20 90
#description:zookeeper
#processname:zookeeper

export JAVA_HOME=/usr/local/java/jdk1.7.0_72
export PATH=$JAVA_HOME/bin:$PATH

case $1 in
          start) su root /home/sjw/zookeeper/zookeeper-3.4.6/bin/zkServer.sh start;;
          stop) su root /home/sjw/zookeeper/zookeeper-3.4.6/bin/zkServer.sh stop;;
          status) su root /home/sjw/zookeeper/zookeeper-3.4.6/bin/zkServer.sh status;;
          restart) su root /home/sjw/zookeeper/zookeeper-3.4.6/bin/zkServer.sh restart;;
          *)  echo "require start|stop|status|restart"  ;;
esac

这个时候我们就可以用使用service zookeeper start/stop命令来尝试启动关闭zookeeper,使用service zookeeper status查看zookeeper状态了。

最后一点我们需要开机自动启动
所以需要添加到启动里面
使用chkconfig --add zookeeper命令把zookeeper添加到开机启动里面

添加完成之后接这个使用chkconfig –list 来看看我们添加的zookeeper是否在里面

img

如果上面的操作都正常的话,你就可以重启你的linux服务器了,并查看是否自启成功了。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值