Linux下安装Dubbo运行环境
1.1.1 安装jdk
zk首先需要安装jdk环境。
yum -y install glibc.i686 #jdk依赖glibc
mkdir /usr/local/src/java #按习惯用户自己安装的软件存放到/usr/local/src目录下
rz 上传jdk tar包 #利用xshell的rz命令上传文件
tar -xvf jdk-7u51-linux-x64.tar.gz #解压压缩包
配置环境变量
1)vi /etc/profile
2)在尾行添加
#set java environment
JAVA_HOME=/usr/local/src/java/jdk1.7.0_51
JAVA_BIN=/usr/local/src/java/jdk1.7.0_51/bin
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BIN PATH CLASSPATH
保存退出
3)source /etc/profile 使更改的配置立即生效
4)java -version 查看JDK版本信息。如显示1.7.0证明成功。
1.1.2 安装ZooKeeper
官网:http://www.apache.org/dist/zookeeper/
tar -xvf zookeeper-3.4.8.tar.gz #解压
mkdir log #创建日志文件路径
mkdir data #创建数据文件路径,默认/tmp/zookeeper下
cd data #进入数据目录
vim myid #创建myid文件,内容1对应zoo.cfg中配置的server.1范围:1~255之间的整数,在集群中必须唯一
cd conf #进入配置目录
cp zoo_sample.cfg zoo.cfg #复制模板文件
1.1.3 配置zoo.cfg
tickTime=2000 #tickTime心跳时间,
clientPort=2181 #访问端口
dataDir=/usr/local/src/zk/zookeeper-3.4.8/data #设置日志路径
dataLogDir=/usr/local/src/zk/zookeeper-3.4.8/log #增加设置日志路径
server.1=192.168.163.5:2888:3888 #配置集群,最少3个节点,可按机器名
server.2=192.168.163.6:2888:3888 #2888指follower连接leader端口
server.3=192.168.163.7:2888:3888 #3888指定选举的端口
1.1.4 打开2181、2888、3888端口
/sbin/iptables -I INPUT -p tcp --dport 2181 -j ACCEPT #打开端口
/sbin/iptables -I INPUT -p tcp --dport 2888 -j ACCEPT #打开端口
/sbin/iptables -I INPUT -p tcp --dport 3888 -j ACCEPT #打开端口
/etc/rc.d/init.d/iptables save #修改生效
/etc/init.d/iptables status #查看配置
1.1.5 启动、停止、重启
sh bin/zkServer.sh start #启动ZK服务
sh bin/zkServer.sh stop #停止ZK服务
sh bin/zkServer.sh restart #重启ZK服务
1.1.6 检查服务
[root@localhost conf]# jps
5863 Jps
2416 QuorumPeerMain #QuorumPeerMain是zookeeper进程,启动正常
1.1.7 查看集群状态
sh bin/zkServer.sh status #查看ZK状态
查看结果:集群中只有一个leader,其他都是follower
[root@localhost bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/src/zk/zookeeper-3.4.8/bin/../conf/zoo.cfg
Mode: leader
[root@localhost bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/src/zk/zookeeper-3.4.8/bin/../conf/zoo.cfg
Mode: follower
1.1.8 客户端访问
[root@localhost bin]# ./zkCli.sh -server 192.168.163.5:2181
1.1.9 客户端查看服务
[zk: localhost:2181(CONNECTED) 1] ls /
[dubbo, zookeeper]
[zk: localhost:2181(CONNECTED) 2] ls /dubbo
[com.jt.dubbo.CartDubboService, com.jt.dubbox.api.IProcessData]
[zk: localhost:2181(CONNECTED) 3]
[zk: localhost:2181(CONNECTED) 4] ls /dubbo/com.jt.dubbo.CartDubboService
[consumers, routers, providers, configurators]
[zk: localhost:2181(CONNECTED) 5] ls /dubbo/com.jt.dubbo.CartDubboService/priders
[]
[zk: localhost:2181(CONNECTED) 6] ls /dubbo/com.jt.dubbo.CartDubboService/priders
[rest%3A%2F%2F169.254.20.254%3A8084%2F%2F%2Fcom.jt.dubbo.CartDubboService%3Fcepts%3D500%26anyhost%3Dtrue%26application%3Djt-cart%26dubbo%3D2.8.4%26extenon%3Dcom.alibaba.dubbo.rpc.protocol.rest.support.LoggingFilter%26generic%3Dfse%26interface%3Dcom.jt.dubbo.CartDubboService%26methods%3DsaveCart%2Cupdatem%2CqueryMyCart%2CdeleteCart%26owner%3Dtony%26pid%3D8668%26revision%3D0.0.1-APSHOT%26server%3Dservlet%26side%3Dprovider%26threads%3D500%26timeout%3D300026timestamp%3D1492120255272]
[zk: localhost:2181(CONNECTED) 7]
rest%3A%2F%2F169.254.20.254%3A8084%2F%2F%2Fcom.jt.dubbo.CartDubboService转码:
rest://169.254.20.254:8084///com.jt.dubbo.CartDubboService
1.1.10 Dubbo控制台
方便监控,查看注册的服务、运行状态、停止服务等。
注意:dubbo-admin.war可在网上百度去下载,网上有好几个war包,发布后服务启动都报错,可能是我们系统的JDK和编译dubbo-admin.war的JDK版本不同导致的。直接下载dubbo-master的源代码,自己编译war包,这样就不会存在启动报错的问题了。
dubbo-admin-2.4.1.war #用课前资料中的tomcat已经打包好了
mkdir ROOT
cd ROOT
jar -xvf dubbo-admin-2.4.1.war #控制台,解压到tomcat中,必须jdk1.7
修改ROOT\WEB-INF\dubbo.properties
dubbo.registry.address=zookeeper://192.168.163.5:2181?backup=192.168.163.6:2181,192.168.163.7:2181 #访问zk的各个节点
dubbo.admin.root.password=root #管理账号
dubbo.admin.guest.password=guest #访客账号
修改startup.bat,指定jdk路径
set JAVA_HOME=D:\javaenv\jdk1.7.0_72 #文件第一行加
启动tomcat, startup.bat
访问:http://localhost:8080/,输入root,密码root登录
1.2 常见问题
1.2.1 myid文件忘记修改
[root@localhost bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/src/zk/zookeeper-3.4.8/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.
解决方案,修改每个的data/myid文件
1.2.2 查看集群状态提示It is probably not running
[root@localhost bin]# ./zkServer.sh stop
[root@localhost bin]# ./zkServer.sh start-foreground 日志启动方式
注意,如果启动时拒绝访问,检查是否防火墙端口都打开,如果打开则都先启动,再看。某个节点没启动,当然访问是被拒绝。