就当前网络平台开发的发展趋势来看,springclou微服务架构已被公认为WEB平台的优先选择方案,在此基础上怎样搭建高可用配置,我记录了一次自己的搭建过程如下:
一、开发环境
1、开发端:win7+idea2020.2+mysql5.7
2、服务端:centos7+双Nginx+双Tomcat+双gateway+双Ribbon+双web项目实例
二、在centos7服务器配置Nginx+双Tomcat-8.5.61
1、Tomcat-8.5.61下载地址
https://tomcat.apache.org/download-80.cgi
2、在centos7服务器进入/usr/local/目录,创建一个目录tomcat,将下载的tomcat-8.5.61压缩文件上传到这个目录
cd /usr/local
mkdir tomcat
3、在本目录下执行解压命令,解压到本目录后的tomcat文件夹如下图标记
tar -zxvf apache-tomcat-8.5.61.tar.gz
cd /usr/local/tomcat
cp -r apache-tomcat-8.5.61/* /usr/local/tomcat/ (复制后删除解压余留文件)
4、tomcat目录下的内容就是一个完整的Tomcat实例内容,要部署两个Tomcat实例,在/usr/local/下面创建两个tomcat实例文件夹tomcat18080、tomcat18081,然后把上述tomcat下的内容复制到新创建的文件夹:
cd /usr/local/
mkdir /usr/local/tomcat18080
mkdir /uer/local/tomcat18081
cp -r tomcat/* /usr/local/tomcat18080
cp -r tomcat/* /usr/local/tomcat18081
5、重点,修改两个实例中每个实例中的三个端口(网上好多介绍修改一个端口,经过测试--失败),我是在远程终端上分别打开tomcat18080、tomcat18981两个文件夹中的conf/server.xml文件,修改三个地方:
6、然后,启动两个实例
cd /usr/local/tomcat18080/bin/
./startup.sh
cd /usr/local/tomcat18081/bin/
./startup.sh
7、在开发端的windows下打开浏览器,分别输入
http://192.168.0.154:18080
http://192.168.0.154:18081
说明在服务器端,tomcat-8.5.61同时启动了两个实例,端口分别是18080、18081. OKOK--
三、安装设置Nginx,配置双Tomcat高可用
1、在centos7服务器上安装一个Nginx,设置好开机启动,我安装在了192.168.0.154服务器上。不懂的百度一下就可以。
2、利用查看进程的命令查看nginx的安装目录,从而找到nginx的配置文件nginx.conf,编辑这个配置文件
ps -ef | grep nginx
vim /etc/nginx/nginx.conf
其中端口18080、18081分别为两个Tomcat实例的服务端口,现在应该重新检查Tomcat是否为启动状态,否则要启动:
cd /usr/local/tomcat18080/bin/
./startup.sh
cd /usr/local/tomcat18081/bin
./startup.sh
3、测试
在开发端的浏览器输入Nginx请求服务:http://192.168.0.154/, 并且不断刷新网页,可以看到Tomcat测试页,打开的端口一会儿18080,一会儿18081,说明客户请求得到了两个Tomcat实例的有效支持,起到了高可用的效果。
就是说对于客户的网络请求,有时候是tomcat18080提供响应,有时候tomcat18081提供响应,当然18080和18081里部署的是同一个项目的两个运行实例,做到了高可用。但是考虑到每个springboot项目已经嵌入了一个Tomcat,项目jar包离开本地Tomcat也可以运行。再说一般的网络项目离不开网关的配套,所以我们将上述的双Tomcat用网关双gateway来代替,然后由网关直接路由到springboot微服务,并且启用eureka里集成的ribbon负载均衡,这种做法也是一种很好的选择。