七、服务器部署
在上文中,我们介绍了服务的构建、开发和测试,那如何在服务器端部署呢?
首先,修改各个项目的application.yml
文件,将其中的数据源地址、dubbo注册中心地址修改为线上能联通的地址,然后在dianshang
目录下使用maven
工具对整个工程执行如下命令进行打包!
mvn clean install
也可以在 IDEA 环境下,通过maven
配置clean install
命令执行打包。
将各个项目target
目录下的dianshang-user-provider.jar
、dianshang-platform-provider.jar
、dianshang-business-provider.jar
拷贝出来。
分别上传到对应的服务器目录,本服务器采用的是 CentOS7,总共4台服务器,其中一台部署zookeeper
,另外三台部署三个微服务项目。
登录服务器,输入如下命令,确保JDK
已经安装完成!
java -version
关闭所有服务器的防火墙,放行端口访问!
#关闭防火墙 systemctl stop firewalld.service #禁止开机启动 systemctl disable firewalld.service
- 启动用户中心服务,日志信息输出到
service.log
(虚拟机ip:192.168.0.108)
nohup java -jar dianshang-user-provider.jar > service.log 2>&1 &
- 启动商品中心服务,日志信息输出到
service.log
(虚拟机ip:192.168.0.107)
nohup java -jar dianshang-platform-provider.jar > service.log 2>&1 &
- 启动订单中心服务,日志信息输出到
service.log
(虚拟机ip:192.168.0.109)
nohup java -jar dianshang-business-provider.jar > service.log 2>&1 &
打开浏览器,输入http://192.168.0.109:8082/order/add?productId=1&userId=1
测试创建订单接口,页面运行结果显示正常!
我们再来测试一下在用户中心订单查询接口,输入输入http://192.168.0.108:8080/user/list?userId=1
,页面运行结果如下!
很清晰的看到,输出了2条信息,第二条订单是在测试环境服务器生成的,第一条是本地开发环境生成的。
到此,服务器部署基本已经完成!
如果是生产环境,可能就需要多台zookeeper
来保证高可用,至少2台服务器来部署业务服务,通过负载均衡来路由!
八、总结
整片文章比较长,主要是围绕 springboot + dubbo 的整合,通过注解开发实现远程服务调用像传统的 springmvc 开发一样轻松,当然还可以通过xml
配置方式实现dubbo服务的调用,这个会在后期去介绍。
同时也介绍了服务器的部署,从中可以看出,开发虽然简单,但是由于分布式部署,如何保证服务高可用成了开发人员头等工作任务,所以,分布式微服务开发虽然开发简单,但是如何确保部署的服务高可用?运维方面会带来不少的挑战!