分布式服务部署详解

目录

[一 前提](#一 前提)

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 &
相关推荐
eqwaak02 小时前
4 月技术快讯|Rust 1.90 正式发布,系统级开发再进化
开发语言·后端·rust
小此方2 小时前
Re:思考·重建·记录 现代C++ C++11篇 (四)C++ Lambda 全解析:编译器是如何为你生成仿函数的?
开发语言·c++·c++11·现代c++
秦歌6662 小时前
RAG-6-高级RAG实战案例:自适应路由 + 自评估重写 + 网络回退
java·服务器·前端·人工智能·python
Brilliantwxx2 小时前
【C++】初认识模版
开发语言·c++
c++之路2 小时前
C++ 命名空间(Namespace)
开发语言·c++·算法
极客先躯3 小时前
高级java每日一道面试题-2025年11月17日-容器与虚拟化题[Dockerj]-请解释容器和虚拟机的本质区别,从架构层面详细说明。
java·docker·架构
2501_933329559 小时前
媒介宣发技术实践:Infoseek舆情系统的AI中台架构与应用解析
开发语言·人工智能·架构·数据库开发
雨奔10 小时前
Kubernetes DNS 完全指南:服务发现核心机制与实践
java·kubernetes·服务发现
[J] 一坚10 小时前
嵌入式高手C
c语言·开发语言·stm32·单片机·mcu·51单片机·iot