一、搭建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.cfgzoo.cfg,对其进行修改:

cd ./conf
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg 

配置下dataDirdataLogDir的路径,为之前创建的两个文件夹的路径,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、如果你的zookeeperdubbo-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、如果你的zookeeperdubbo-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、保持生产者处于运行状态,然后运行消费者如下。

暂时还没成功

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐