一、选择开源项目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