一、搭建java和tomcat环境
这一步比较简单,可以参照上一篇文章:linux下tomcat8安装详解详解
二、搭建zookeeper
我使用的是zookeeper-3.5.3-beta.tar,点击下载点击下载
然后新建一个存放目录 /usr/mysoftware/tomcat ,将安装包rz进去。
下载后将其解压:
tar -xvf zookeeper-3.5.3-beta.tar.gz
解压后如下:(我这里已经解压过了,所以执行指令并没有重复解压)
切换到这个解压后得到的文件夹,然后创建建立logs文件夹和data文件夹用于存放日志和数据:,如下(同样我已经创建了)
cd ./zookeeper-3.5.3-beta
mkdir data
mkdir logs
进入上图所示的conf目录,复制一份zoo_sample.cfg为zoo.cfg,对其进行修改:
cd ./conf
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
配置下dataDir和dataLogDir的路径,为之前创建的两个文件夹的路径,clientPort使用默认的2181端口即可:
此处用的是单机模式,没有配集群,这样就可以了。
在进入到bin目录,启动服务即可:
./zkServer.sh start
./zkServer.sh status
如下图所示:
如上所示应该就是启动成功了。
小心踩坑:此处注意很多时候zk可能并没有真正的被开启。如下图所所示:
原因:通常情况下是zk的端口和tomcat的端口冲突了。现象就是tomcat关闭的时候zk能够能正常的启动,此时tomcat即时输入了启动指令“./startup.sh”在浏览中也是无法正常访问那个tomcat的页面的(http://172.25.10.111:8080)。如果tomcat先启动了那么zk就无法真正的启动。归根结底:zk的默认端口是8080,这个是和tomcat的默认端口冲突,这回造成每次两者只能启动一个另一个启动不成功。另外参考
验证:你直接将tomcat和zk都启动,然后查看端口占用情况“netstat -an |grep 8080”。如下图所示显然是冲突了。
解决办法:在上面vim zoo.cfg 中加上一句
admin.serverPort=8088 #8088为你指定的没有被占用的端口号
测试zk是否能连上:启动客户端测试一下,再开一窗口,同样cd到bin下执行,执行如下指令
./zkCli.sh -server 127.0.0.1:2181
注意:这条指令指令非常有用,在运行java程序之前你可以用来测试能否连同,如果不通的话他们报的错是一样的。
如下图所示为通的情况:
……………………(中间省略若干行)……………………
小心踩坑:
执行./zkServer.sh start时不要加sudo,如果root用户配置文件没有配JAVA_HOME会出现找不到JAVA_HOME!
相关命令:
启动服务:start 停止服务: stop 重启服务; restart 查看状态:status
三、搭建dubbo监控中心
版本要求:
请使用dubbo-admin-2.5.6.war及以上版本,否则会不支持JDK1.8!
我用的是dubbo-admin-2.5.7.war: 下载
小心踩坑:
1、如果你的zookeeper和dubbo-admin在一台服务器上,dubbo-admin不用修改任何内容!此时
先tomcat的ROOT下文件都删除。
cd /usr/mysoftware/tomcat/apache-tomcat-9.0.10/webapps/ROOT
rm -rf /usr/mysoftware/tomcat/apache-tomcat-9.0.10/webapps/ROOT/*
把dubbo-admin-2.5.7.war文件cd到ROOT下,再解压即可。
unzip dubbo-admin-2.5.7.war
查看文件有以下内容如下:
2、如果你的zookeeper和dubbo-admin不在一台服务器上。则还要继续:
到webapps/ROOT/WEB-INF下,有一个dubbo.properties文件,里面指向Zookeeper ,使用的是Zookeeper 的注册中心,如图所示。你需要将那个IP地址改成zookeeper主机的IP地址就好了。
然后启动tomcat服务
启动完成,172.25.10.111:8080 访问测试,默认的用户名和密码:root/root
登陆后如下:
注:
(1)如果 ./zkServer.sh start 的话要记得关闭 ./zkServer.sh stop,否则可能出现连不上。
(2)如果还是连不上的话关闭防火墙试试。
/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
service iptables save
service iptables restart
至此,大功告成。。
https://blog.csdn.net/yuanlaijike/article/details/79654183
http://blog.51cto.com/343614597/1874745
https://blog.csdn.net/plg17/article/details/65719122
四、接下来继续分析将实现《maven+springmvc+dubbo+zookeeper》这篇博客。
包括程序如下:下载
1、首先将zk和tomcat都启动起来。
2、登录172.25.10.111:8080进入tomcat界面。
3、按照上面的博客把生产者程序配置加载进去。(中间会有很多各种各样的报错,网上搜都是可以解决的。)例如:
问题1:ApplicationContext-dubbo.xml有很多“xxx”。提示cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element
解决:网上一搜一大堆。就是缺一个dubbo.xsd文件,下载一个在配置好关联关系即可。参见此链接
问题2:可能还会有一些log4j的stdout的一些错误,有的话在log4.properties中添加如下两句即可。(生产者/消费者都被纠正了)
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
问题3:程序运行的时候可能还会出现一些红色的error等,直接百度很容易解决。
小心踩坑:同样在ApplicationContext-dubbo.xml文件中指定了zookeeper的IP地址和端口。我们知道在一台电脑的情况下默认是127.0.0.1:2181,但是在我们这里不是。因为我们的zk是部署在一个ip地址为172.25.10.111的虚拟机上的。这个虚拟机我们是可以在cmd窗口下ping通的(ping 172.25.10.111)。所以此处应该如下才对:
其正常运行的情况应该是这个样子的。
dubbo的界面是这个样子的:
4、接下来把消费的工程也打开。(可能面临那个stdout的错误,处理方法一样)
5、保持生产者处于运行状态,然后运行消费者如下。
暂时还没成功
————————————————
版权声明:本文为CSDN博主「mijichui2153」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/mijichui2153/article/details/81102277