分布式部署

目录

部署准备

环境要求

部署操作

[MySQL - 服务器1](#MySQL - 服务器1)

[Nacos 安装 - 服务器 1](#Nacos 安装 - 服务器 1)

[产品服务,订单服务部署 - 服务器 2,3](#产品服务,订单服务部署 - 服务器 2,3)

常见问题:

网关服务部署

完!


部署准备

前面的文章中,我们的微服务都是在单机上进行部署的,接下来要使用多台服务器,演示分布式服务部署。

我们的部署内容有:

  1. MySQL 2. Nacos 3. 网关服务 4. 产品服务 5. 订单服务

我们暂且把 MySQL 和 Nacos 网关服务部署为单例,产品服务和订单服务部署为多例。

环境要求

机器个数: 1 --------- N 台。 1 台机器,就是我们前面的单机部署,将所有服务部署在一台服务器上,如果多台,就可以将上面的 5 个服务,根据机器性能分摊,分开部署即可~

本文部署情况:使用 4 台机器

部署操作

MySQL - 服务器1

  1. MySQL 安装,在前文中已有叙述。

  2. 数据初始化,前文已有叙述。

  3. 对其他服务器授权

MySQL 默认情况下,只允许本地连接,即 localhost,如果其他服务器需要连接到 MySQL,需要 MySQL 对这个服务器进行授权:

语法格式:

  1. 使用 SQL 语句,创建用户并授权
  1. 修改 bind-address

执行命令行:

在 vim 中找到并修改 bind-address

  1. 重启 MySQL 服务器
  1. 开放 3306 端口号

  2. 测试授权结果

在 CMD 客户端,使用如下命令行,连接 MySQL,如果可以正确连接,则授权成功

Nacos 安装 - 服务器 1

参考前文 注册中心实现 - Nacos 中的 Nacos 安装过程。

需要注意的是 Nacos 安装前需要先安装 JDK

产品服务,订单服务部署 - 服务器 2,3

两台服务器操作步骤相同

  1. 安装 JDK

  2. 确认配置,代码,打包,上传 jar 包 --> 这里主要需要配置的就是 Mysql 地址,账号名,密码,nacos 配置!

  3. 启动服务

  4. 测试,观察日志

常见问题:

  1. 在操作过程中,可能会出现如下提示:

Ubuntu 22.04 版本之后,安装包的过程中,可能会出发 needstart 命令,与用户交互。如果不需要重启,按 Esc 即可~

  1. 将 jar 包拖入 Linux 服务器时候,如果进度条一直没有变化,则需要先执行命令行:

apt install lrzsz

3.当启动服务,可能有如下报错:

即,未检测到 nacos 配置,注意,nacos 配置需提前配置

  1. Nacos 默认注册地址为内部局域网 IP,如果各个服务器不在一个局域网时,根据内网 IP 去访问,会出现内网不通,接口调用失败

需要通过 spring.cloud.nacos.discovery.ip 来注册 ip

网关服务部署

  1. 安装 JDK

  2. 登录服务器,上传 jar 包

  3. 启动服务

  1. 开放对应端口号

  2. 进行测试

完!

相关推荐
Gold Steps.2 分钟前
Longhorn分布式云原生块存储系统
分布式·云原生
想你依然心痛34 分钟前
Spark大数据分析与实战笔记(第六章 Kafka分布式发布订阅消息系统-03)
笔记·分布式·spark·kafka
鸽鸽程序猿36 分钟前
【JavaEE】【SpringCloud】分布式事务 Alibaba Seata
分布式·spring cloud·java-ee
王锋(oxwangfeng)1 小时前
Spark 向量化执行引擎技术选型与实践指南
大数据·分布式·spark
小邓睡不饱耶1 小时前
使用Spark进行学生成绩数据深度分析与处理
大数据·分布式·spark
没有bug.的程序员1 小时前
Spring Cloud Sentinel:熔断降级规则配置与分布式流量防线实战终极指南
java·分布式·后端·spring cloud·sentinel·熔断规则·分布式流量防线
小北方城市网1 小时前
MongoDB 分布式存储与查询优化:从副本集到分片集群
java·spring boot·redis·分布式·wpf
難釋懷16 小时前
分布式锁-redission锁重试和WatchDog机制
分布式
kobe_t19 小时前
分布式定时任务系列14:XXL-job的注册模型
分布式
Knight_AL20 小时前
线程池满了怎么办?用 RabbitMQ 做任务补偿不丢失
分布式·rabbitmq·ruby