📑打牌 : 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. 对其他服务器授权![](https://i-blog.csdnimg.cn/direct/fadfd31c547c4ae49feb0bcabec5143b.png)
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![](https://i-blog.csdnimg.cn/direct/5a5254dc7f3d4f07a848d98e8b1b1167.png)
安装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