一、选择开源项目renren-fast

renren-fast是一款前后端分离的开源项目,前端主要技术是vue,后端主要技术java,我将以开源项目renren-fast做为这次部署运维实践的素材。

运维学习(五)前后端分离项目的部署运维实践

访问www.renren.io,点击下载后端源码以及前端源码,跳转gitee,从gitee上获得前后端源码。

二、Windows中查看项目

2.1 运行后端项目

使用eclipse导入renren-fast的后端项目代码:

运维学习(五)前后端分离项目的部署运维实践

db文件夹中是项目将要使用到的数据,这里就使用mysql数据库,选用db文件夹中的mysql.sql把数据表建立好:

运维学习(五)前后端分离项目的部署运维实践

application.yml中配置了运行项目时使用的是dev环境的配置 ,那么需要把application-dev.yml中的数据源配置做修改,

将其中的数据库连接信息修改成自己的:

运维学习(五)前后端分离项目的部署运维实践

运维学习(五)前后端分离项目的部署运维实践

之后运行项目即可。

renren-fast中使用了swagger技术便于接口测试,在人人网的开发文档中提供了swagger的接口测试页面地址。

运维学习(五)前后端分离项目的部署运维实践

访问该页面,就可以对接口进行测试 :

运维学习(五)前后端分离项目的部署运维实践

 

2.2 运行前端项目 

前端项目主要采用到的技术是VUE、NodeJS、ElementUI。

NodeJS要运行需要先下载安装NodeJS环境,下载后傻瓜式安装即可:

运维学习(五)前后端分离项目的部署运维实践

进入前端项目文件夹,

cmd运行命令安装npm:npm install 

cmd运行命令启动前端项目:npm run dev

之后会自动弹出前端项目的登录页,填写用户名/密码:admin/admin 登录即可。

运维学习(五)前后端分离项目的部署运维实践

 通过运行前端项目,在页面中进行操作,可以去eclipse中查看后端服务是否正常响应。

在windows中运行项目只是为了简单查看一下项目,之后就是在Linux中对项目进行部署和运维了。

 

三、Linux中部署项目

3.1 创建数据库及导入数据

之前在Linux上搭建了数据库集群,也实现了负载均衡中间件的高可用:

之前在Linux中使用Docker搭建了mysql的pxc集群,使用Keepalived占用了linux的ip 192.168.132.150,

数据库请求发送到这个ip时,会通过Keepalived被路由到Docker的虚拟ip 172.18.0.15,

又被主Keepalived转发给负载均衡中间件Harpoxy,最后分发请求给数据库集群其中某一个节点。

 

因此现在的操作是,在@192.168.132.150中新建数据库renren_fast,集群中也便会存在了此数据库,之后导入renren_fast后端项目中的sql文件,完成数据的导入。

运维学习(五)前后端分离项目的部署运维实践

3.2 修改mysql数据源配置

把application-dev.yml中的数据库连接、用户和密码修改成linux环境中的。

运维学习(五)前后端分离项目的部署运维实践

 3.3 修改redis配置

之前在linux中搭建了redis集群。

把application.yml中的redis配置给修改成linux中redis集群的:

运维学习(五)前后端分离项目的部署运维实践

3.4 修改Tomcat配置

将Tomcat端口从8080修改为6001:

运维学习(五)前后端分离项目的部署运维实践

运维学习(五)前后端分离项目的部署运维实践

为什么要改tomcat端口?

注意,之后会将java程序部署成多个Docker容器,做服务集群。

因为Docker虚拟机禁止跨网段去访问,如果java程序运行时被划分到了net3网段,想使用net1网段的数据库集群、net2网段的redis集群,就会出问题。

解决办法是将java程序所在容器的网络对接到宿主机的网络上,不为这个java容器划分网段,直接使用宿主机的网络,就可以访问net1、net2的网段了。

 

但是现在又存在一个问题,在java容器里启动了一个tomcat,假如这个端口是8080,这个端口直接映射到宿主机的8080上。

将来要运行的java容器又不止一个,第二个要运行的容器中tomcat端口也是8080,也映射宿主机的8080,就会出现端口冲突的问题。

所以为tomcat设置不同的端口,第一个tomcat端口6001,第二个tomcat端口6002。。。从而避免端口冲突。

 

//TODO

相关文章: