Ⅰ. 部署前准备
前面的服务,咱们都是在单机上部署的,接下来我们使用多台服务器,演示下分布式服务部署。
在部署之前先整理下需要部署的内容:
-
MySQL
-
Nacos
-
网关服务
-
产品服务
-
订单服务
由于服务器受限,我们把 MySQL、Nacos,网关服务部署为单例的,产品服务和订单服务部署为多例的。
环境要求
机器个数: 1-N台均可。
-
如果为 1 台,参考前面课程,所有的项目均部署在一台机器即可。
-
如果为多台,把上面 5 个服务,根据机器性能分摊,分开部署即可。
-
为更好的学习,建议 3 台以上。
机器环境: Linux环境(CentOS、Ubuntu均可)
本次演示机器情况说明: 机器个数 4 台
| 服务器 | 计划部署内容 |
|---|---|
| 服务器1 | MySQL,Nacos |
| 服务器2 | 产品服务实例1,订单服务实例1 |
| 服务器3 | 产品服务实例2,订单服务实例2 |
| 服务器4 | 网关服务 |
Ⅱ. 部署操作
大部分操作都是和单体架构类似的,需要注意有以下几点:
-
因为数据库和 Nacos 服务放在不同的服务器上面了,而不是
127.0.0.1去访问了,所以需要修改对应的配置文件。 -
Nacos 默认注册地址为内网 IP,如果各个服务器不在一个局域网时,根据内网 IP 去访问时,会出现网络不通,接口调用失败,需要通过
spring.cloud.nacos.discovery.ip设置注册的地址:
#后台启动product-service, 并设置输出日志到logs/order.log
nohup java -jar product-service-1.0-SNAPSHOT.jar --spring.cloud.nacos.discovery.ip=162.14.71.227 >logs/product.log &
#后台启动order-service, 并设置输出日志到logs/order.log
nohup java -jar order-service-1.0-SNAPSHOT.jar --spring.cloud.nacos.discovery.ip=162.14.71.227 >logs/order.log &