为了模拟真实的开发场景,我们设定的场景是这样的:项目已经完成1.0.0版本60%的功能开发,能够实现项目的课程管理、课程购买等业务流程。现在需要加入课程学习、优惠促销、评价等功能。
相关微服务及1.0.0版本的完成状态如下:
导入虚拟机
为了模拟企业中的开发环境,我们利用虚拟机搭建了一套开发环境,其中部署了开发常用的组件:
- Git私服(gogs):代码全部提交带了自己的Git私服,模拟企业开发的代码管理,大家也需要自行到私服拉取代码
- jenkins:持续集成,目前已经添加了所有部署脚本和Git钩子,代码推送会自动编译,可以根据需求手动部署
- nacos:服务注册中心、统一配置管理,大多数共享的配置都已经交给nacos处理
- seata:分布式事务管理
- xxl-job:分布式任务系统
- es:索引库
- redis:缓存库
- mysql:数据库
- kibana:es控制台
如图:
导入方式有两种: - 方式一:下载完整虚拟机并导入,参考文档《虚拟机导入说明》
- 方式二:下载基础DockerCompose文件,及基础数据,利用脚本一键部署。参考文档《自定义部署》
注意:导入虚拟机后所有软件即可使用,无需重复安装,VMware一定要按照文档中设置IP,不要私自修改。一定要关闭windows防火墙。
配置本机hosts
为了模拟使用域名访问,我们需要在本地配置hosts:
192.168.150.101 git.tianji.com
192.168.150.101 jenkins.tianji.com
192.168.150.101 mq.tianji.com
192.168.150.101 nacos.tianji.com
192.168.150.101 xxljob.tianji.com
192.168.150.101 es.tianji.com
192.168.150.101 api.tianji.com
192.168.150.101 www.tianji.com
192.168.150.101 manage.tianji.com
当我们访问上述域名时,请求实际是发送到了虚拟机,而虚拟机中的Nginx会对这些域名做反向代理,这样我们就能请求到对应的组件了:
在浏览器中输入对应域名,即可查看到对应服务,例如Git私服地址:http://git.tianji.com
每个域名对应的服务列表如下:
同样,我们访问用户端或者管理端页面时,也会被Nginx反向代理:
当我们访问www.tianji.com时,请求会被代理到虚拟机中的 /usr/local/src/tj-portal目录中的静态资源
当页面访问api.tianji.com时,请求会被代理到虚拟机中的网关服务。