📑打牌 : da pai ge的个人主页
🌤️个人专栏 : da pai ge的博客专栏
☁️宝剑锋从磨砺出,梅花香自苦寒来
1. 需要部署的服务
Nacos 理论上,应该是集群的模式
MySQL 理论上,应该是集群的模式
网关服务 单例
订单服务>多例
商品服务>多例
2机器个数
1-N 都可以
3MySQL部署操作
2.1 MySQL安装
1安装MySQL
http://t.csdnimg.cn/lfrgA
CENTOS7
wget https://dev.mysql.com/get/mysql80-community
release-el7-11.noarch.rpm
//
安装发布包
yum -y install mysql80-community-release-el7-11.noarch.rpm
//
安装MySQL, 中间输⼊Y
systemctl start mysqld
systemctl enable mysqld
首次安装成功,MySQL把root⽤⼾的默认密码保存在错误⽇志中
grep "password" /var/log/mysqld.log
&hpkaqO:c4oK #默认⽣成的密码
mysql -uroot -p
修改密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'yyds.666';
Query OK, 0 rows affected (0.01 sec)
2. 数据初始化
直接复制
- 订单服务
-- 建库
create database if not exists cloud_order charset utf8mb4;
use cloud_order;
-- 订单表
DROP TABLE IF EXISTS order_detail;
CREATE TABLE order_detail (
`id` INT NOT NULL AUTO_INCREMENT COMMENT '订单id',
`user_id` BIGINT ( 20 ) NOT NULL COMMENT '用户ID',
`product_id` BIGINT ( 20 ) NULL COMMENT '产品id',
`num` INT ( 10 ) NULL DEFAULT 0 COMMENT '下单数量',
`price` BIGINT ( 20 ) NOT NULL COMMENT '实付款',
`delete_flag` TINYINT ( 4 ) NULL DEFAULT 0,
`create_time` DATETIME DEFAULT now(),
`update_time` DATETIME DEFAULT now(),
PRIMARY KEY ( id )) ENGINE = INNODB DEFAULT CHARACTER
SET = utf8mb4 COMMENT = '订单表';
-- 数据初始化
insert into order_detail (user_id,product_id,num,price)
values
(2001, 1001,1,99), (2002, 1002,1,30), (2001, 1003,1,40),
(2003, 1004,3,58), (2004, 1005,7,85), (2005, 1006,7,94);
-- 产品服务
create database if not exists cloud_product charset utf8mb4;
-- 产品表
use cloud_product;
DROP TABLE IF EXISTS product_detail;
CREATE TABLE product_detail (
`id` INT NOT NULL AUTO_INCREMENT COMMENT '产品id',
`product_name` varchar ( 128 ) NULL COMMENT '产品名称',
`product_price` BIGINT ( 20 ) NOT NULL COMMENT '产品价格',
`state` TINYINT ( 4 ) NULL DEFAULT 0 COMMENT '产品状态 0-有效 1-下架',
`create_time` DATETIME DEFAULT now(),
`update_time` DATETIME DEFAULT now(),
PRIMARY KEY ( id )) ENGINE = INNODB DEFAULT CHARACTER
SET = utf8mb4 COMMENT = '产品表';
-- 数据初始化
insert into product_detail (id, product_name,product_price,state)
values
(1001,"T恤", 101, 0), (1002, "短袖",30, 0), (1003, "短裤",44, 0),
(1004, "卫衣",58, 0), (1005, "马甲",98, 0),(1006,"羽绒服", 101, 0),
(1007, "冲锋衣",30, 0), (1008, "袜子",44, 0), (1009, "鞋子",58, 0),
(10010, "毛衣",98, 0);
3. 对其他服务器授权
grant 权限 on 数据库对象to ⽤⼾
修改bind-address
修改⽂件路径:/etc/mysql/mysql.conf.d/mysqld.cnf
重启MySQL服务器
systemctl restart mysql
开放3306端⼝号
测试授权结果
使⽤CMD客⼾端,连接服务器MySQL
4nacos部署
下载JDK
下载地址:https://www.oracle.com/java/technologies/downloads/#java17
centos7 wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.rpm
yum -y install jdk-17_linux-x64_bin.rpm
验证 java -version
上传nacos 启动服务 开放对应端⼝号
测试
访问接⼝:http://110.41.51.65:8080
5产品服务,订单服务部署
下载JDK
centos7 wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.rpm
yum -y install jdk-17_linux-x64_bin.rpm
验证 java -version
确认配置, 代码, 打包
注意事项
常见问题
一nacos 没找到配置项
解决方法
进入nacos
问题2
安装lrzsz即可
问题三 数据库错误
然后在重新打包上传服务器
打包完会显示相关路径
.把包上传到服务器(注意: 先把老的java进程杀掉) 启动程序
问题四 内网IP
运行代码改成这个即可 nohup java -jar order-service-1.0-SNAPSHOT.jar --
spring.cloud.nacos.discovery.ip=162.14.71.227 >logs/order.log &
接着访问外网IP
登录服务器,上传Jar包
打包流程
ls
order-service-1.0-SNAPSHOT.jar product-service-1.0-SNAPSHOT.jar
启动服务
nohup java -jar product-service-1.0-SNAPSHOT.jar --
spring.cloud.nacos.discovery.ip=162.14.71.227 >logs/product.log &
nohup java -jar order-service-1.0-SNAPSHOT.jar --
spring.cloud.nacos.discovery.ip=162.14.71.227 >logs/order.log &
开放对应端⼝号 测试
产品服务:http://162.14.71.227:10030/product/1001
订单服务:http://162.14.71.227:10040/order/1
6⽹关服务部署
安装JDK
登录服务器,上传Jar包
启动服务
nohup java -jar gateway-1.0-SNAPSHOT.jar --server.port=8080 >logs/gateway.log &
开放对应端⼝号 测试
产品服务:http://120.78.126.148:8080/product/1001
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现