分布式服务部署详解

目录

[一 前提](#一 前提)

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 &
相关推荐
Aurorar0rua4 小时前
CS50 x 2024 Notes C -14
c语言·开发语言·学习方法
小短腿的代码世界5 小时前
从.qrc到rcc编译器:Qt资源系统的隐秘运作机制与大型项目性能突围
开发语言·qt
fanly115 小时前
.NET如何实现向量语义分析
微服务·ai·surging
2401_833269305 小时前
Java网络编程入门
java·开发语言
金銀銅鐵5 小时前
[Java] 如何将 Lambda 表达式对应的类保存到 class 文件中?
java·后端
青瓦梦滋5 小时前
C++的IO流与STL的空间配置器
开发语言·c++
五月君_6 小时前
Bun v1.3.14 发布,Rust 版即将进 Claude Code 内测,下一版可能就告别 Zig
开发语言·后端·rust
それども6 小时前
Gradle 构建疑难杂症 Could not find netty-transport-native-epoll-linux-aarch_64.ja
java·服务器·gradle·maven
正儿八经的少年6 小时前
application.yml 系列配置文件作用与区别
java·配置文件
鱼很腾apoc7 小时前
【学习篇】第20期 超详解 C++ 多态:从语法规则到底层原理
java·c语言·开发语言·c++·学习·算法·青少年编程