分布式服务部署详解

目录

[一 前提](#一 前提)

1.需要部署的服务

2.拆分原则

[二 MySql安装](#二 MySql安装)

1.安装Mysql

(1)安装Mysql

(2)查看Mysql状态

(3)Mysql安装安全设置

(4)设置Mysql密码

5)验证是否安装成功验证是否安装成功)

补充:卸载Mysql

2.数据初始化

3.对其他服务器授权

(1)创建用户,并授权

(2)进入目录,修改bind-address

(3)重新启动mysql

(4)开放3306端口

(5)测试授权结构

[三 Nacos安装](#三 Nacos安装)

1.安装JDK

(1)安装

(2)确认安装和版本

2.安装Nacos

(1)上传压缩包到服务器

(2)解压缩

(3)启动Nacos

(4)验证

[四 应用服务部署](#四 应用服务部署)

1.基本步骤

2.常见问题

3.代码修改后步骤

4.存在问题


一 前提

1.需要部署的服务

Nacos

MySQL

注:Nacos和MySQL在理论上应该是集群

网关服务--集群+域名映射

各种业务服务--多例

2.拆分原则

同一功能块,分配不同的机器进行部署

比如订单服务有两个实例,实例1部署在机器1,实例2部署在机器2

如果有更多台,可根据情况安排对应部署的内容,需要参考的性能,性能好的机器可部署多几个服务,然后业务服务多增几个实例

注意事项:每台机器需要对应开放部署上去服务的端口号,这样才能进行互相调用

二 MySql安装

1.安装Mysql

(1)安装Mysql

在Ubuntu中使用如下命令:

复制代码
#查找安装包
apt list |grep "mysql-server"

#安装mysql
sudo apt install mysql-server

选项按Y

(2)查看Mysql状态

复制代码
sudo systemctl status mysql

(3)Mysql安装安全设置

复制代码
sudo mysql_secure_installation

除了密码强度设置为2外,其他的一路Y即可

(4)设置Mysql密码

复制代码
sudo mysql

或在Mysql客户端设置:

sql 复制代码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY
'Zhku666!';

5)验证是否安装成功

bash 复制代码
mysql --version

补充:卸载Mysql

bash 复制代码
#停⽌mysql
sudo systemctl stop mysql

#卸载mysql
sudo apt-get remove --purge mysql-server mysql-client mysql-common

#删除 MySQL 配置⽂件和数据
sudo rm -rf /etc/mysql /var/lib/mysql

#清理残留⽂件和⽬录
sudo apt-get autoremove
sudo apt-get autoclean

#验证卸载结果
mysql --version

2.数据初始化

将对应的sql文件进行执行

3.对其他服务器授权

(1)创建用户,并授权

sql 复制代码
-- 创建⽤⼾zhku, 并设置密码, 此步可省略
-- %表⽰IP, %表⽰允许所有IP访问, 也可以指定IP
CREATE USER 'zhku'@'%' IDENTIFIED BY 'Zhku666!';


-- 对bite⽤⼾授权
-- *.* 表⽰所有库的所有表, 也可以指定库和表
GRANT ALL ON *.* TO 'zhku'@'%';


-- 让修改⽣效
FLUSH PRIVILEGES;

(2)进入目录,修改bind-address

令指定的机器能够访问到当前机器的mysql

修改文件的路径:/etc/mysql/mysql.conf.d/mysqld.cnf

把bind-address = 127.0.0.1改为 bind-address = 0.0.0.0

补充:在linux上编辑文字的方式:

①vi 文件名

②按i进入编辑模式

③编辑完按esc退出

④:wq进行保存退出,若编辑错误则:q!强制退出,若无编辑则按:q退出

(3)重新启动mysql

sql 复制代码
sudo systemctl restart mysql

(4)开放3306端口

要令其他服务器访问到,3306端口必须进行开放)

(5)测试授权结构

bash 复制代码
mysql -h1.1.1.1 -P3306 -uzhku -pZhku@yyds.666

补充说明:

-h表示Mysql部署的服务器IP

-P:是Mysql部署的服务器的端口号

-u:是用户名

-p:是密码

注:-P和-p不要混淆

三 Nacos安装

注:安装Nacos前需要先安装JDK

1.安装JDK

(1)安装

bash 复制代码
#更新软件包
sudo apt update 
#安装JDK
sudo apt install openjdk-17-jdk

(2)确认安装和版本

bash 复制代码
java -version

2.安装Nacos

(1)上传压缩包到服务器

(2)解压缩

bash 复制代码
#未安装解压缩需要先安装解压缩
apt-get install unzip

#解压缩
unzip nacos-server-2.2.3.zip

(3)启动Nacos

在/bin目录下启动startup.sh,记得指定单机模式

bash 复制代码
bash startup.sh -m standalone

(4)验证

访问http://ip:port/nacos

四 应用服务部署

1.基本步骤

(1)安装JDK(步骤同上)

(2)确认配置,代码,打包,上传包

确认配置:比如nacos的地址,mysql的url,用户名,密码

(3)启动服务

(4)测试,观察日志

2.常见问题

(1)没有找到配置项

(2)上传没有进度条

问题:第一次安装需要apt install lrzsz

(3)数据库错误

①检查代码,看数据库配置是否正确(url,用户名,密码)

②确认是否对数据库进行了授权

如何确认?--与上面测试相同,linux下也可以直接执行那条语句进行授权,能连上就代表授权了

(4)Client not Connected:可能是网络问题,Rejected可能是服务未启动

3.代码修改后步骤

(1)重新打包(clean-package)

(2)把包重新上传到服务器(确认把老的java进程杀掉)

(3)启动程序

4.存在问题

Nacos注册时使用的IP是内网IP,如果多台机器部署不在同一个局域网下的话无法互相访问

解决方法:配置spring.cloud.nacos.discovery.ip,将其配置为部署当前服务的服务器地址

注:在启动的时候手动配置即可,因一个服务有多个实例,不同实例ip不同无法统一配置

示例:

bash 复制代码
nohup java -jar order-service-1.0-SNAPSHOT.jar --
spring.cloud.nacos.discovery.ip=162.14.71.220 >logs/order.log &
相关推荐
像我这样帅的人丶你还4 小时前
Java 后端详解(四):分页与搜索
java·javascript·后端
她的男孩4 小时前
数据权限为什么不能只靠注解?Forge 的 Mapper 层 SQL 改写源码拆解
java·后端·架构
tntxia5 小时前
Mybatis的日志输入
java
亦暖筑序6 小时前
Java 8老系统Browser Agent实战:三层拦截把AI操作后台变成可审计流程
java·后端·设计模式
用户298698530149 小时前
Java 实现 Word 文档加密与权限解除
java·后端
Yeats_Liao10 小时前
14:Servlet中的页面跳转-Java Web
java·后端·架构
未秃头的程序猿10 小时前
告别"if-else地狱"!Java 21模式匹配,代码优雅了10倍
java·后端·面试
鹤望兰67510 小时前
字节跳动国际支付-后端开发-三面面经
java
Flittly11 小时前
【AgentScope Java新手村系列】(14)人机交互
java·spring boot·spring
RainCity11 小时前
Java Swing 自定义组件库分享(十二)
java·笔记·后端