愿景:"让编程不再难学,让技术与生活更加有趣"
更多架构课程请访问 xdclass.net
目录
第3集 视频和订单服务迁移阿里云Nacos配置中心和镜像打包
第1集 配置文件Bug修复-网关重新打包推送
简介:脚本bug修复和服务重新打包推送
- 缺少主文件,本地验证 进入target目录 java -jar xxx.jar 执行
no main manifest attribute, in /app.jar
xxx.jar中没有主清单属性
-
注意事项
- 重新打包,在聚合工程目录下执行, 不然可能出现类找不到
mvn clean mvn install
-
本地退出远程私有镜像仓库
docker logout
- 重新打包推送到私有镜像仓库(如打包超时,可以多试试几次)
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<fork>true</fork>
<addResources>true</addResources>
</configuration>
</plugin>
- 注册中心的ip 改为阿里云局域网ip
- 上述步骤同步更新到网关服务、视频服务、订单服务
- 机器配置, 部署在低配服务器
120.24.216.117(公)
172.18.123.230(私有)
2 vCPU 1 GiB (安装了Mysql/Zipkin服务)
112.74.55.160(公)
172.18.123.229(私有)
2 vCPU 4 GiB(安装了Nacos、Sentinel、网关、视频服务、订单服务)
- 网关打包推送
docker tag 046756142a54 registry.cn-shenzhen.aliyuncs.com/xdclass-cloud/cloud-gateway:v2.0
docker push registry.cn-shenzhen.aliyuncs.com/xdclass-cloud/cloud-gateway:v2.0
第2集 网关配置迁移阿里云Nacos配置中心和服务启动
简介:网关配置迁移和服务启动
- 阿里云Nacos新建配置 dataId = api-gateway-dev.yaml
server:
port: 8888
spring:
application:
name: api-gateway
zipkin:
base-url: http://172.18.123.230:9411/ #zipkin地址
discovery-client-enabled: false #不用开启服务发现
sleuth:
sampler:
probability: 1.0 #采样百分比
cloud:
nacos:
discovery:
server-addr: 172.18.123.229:8848
gateway:
routes: #数组形式
- id: order-service #路由唯一标识
#uri: http://127.0.0.1:8000 #想要转发到的地址
uri: lb://xdclass-order-service #从nocas进行转发
order: 1 #优先级,数字越小优先级越高
predicates: #断言 配置哪个路径才转发
- Path=/order-server/**
#- Before=2020-09-11T01:01:01.000+08:00 # 在这个时间点之后不能访问
#- Query=source #一定携带这个参数
filters: #过滤器,请求在传递过程中通过过滤器修改
- StripPrefix=1 #去掉第一层前缀
discovery:
locator:
enabled: true #开启网关拉取nacos的服务
- 阿里云网关镜像拉取
docker pull registry.cn-shenzhen.aliyuncs.com/xdclass-cloud/cloud-gateway:v2.0
- 网关容器启动
docker run --name xdclass-gateway -d -p 8888:8888 镜像id
第3集 视频和订单服务迁移阿里云Nacos配置中心和镜像打包
简介:视频服务和订单服务前移配置中心和镜像打包
- 配置中心新增配置
- 本地镜像打包推送阿里云镜像仓库
//视频服务
docker tag 53f5604dcd76 registry.cn-shenzhen.aliyuncs.com/xdclass-cloud/cloud-video:v2.0
docker push registry.cn-shenzhen.aliyuncs.com/xdclass-cloud/cloud-video:v2.0
//订单服务
docker tag 16e0740b7525 registry.cn-shenzhen.aliyuncs.com/xdclass-cloud/cloud-order:v2.0
docker push registry.cn-shenzhen.aliyuncs.com/xdclass-cloud/cloud-order:v2.0
- 阿里云ecs服务器拉取镜像
docker pull registry.cn-shenzhen.aliyuncs.com/xdclass-cloud/cloud-video:v2.0
docker pull registry.cn-shenzhen.aliyuncs.com/xdclass-cloud/cloud-order:v2.0
- 机器配置
120.24.216.117(公)
172.18.123.230(私有)
2 vCPU 1 GiB (安装了Mysql/Zipkin服务)
112.74.55.160(公)
172.18.123.229(私有)
2 vCPU 4 GiB(安装了Nacos、Sentinel、网关、视频服务、订单服务)
- 视频服务配置
server:
port: 9000
spring:
application:
name: xdclass-video-service
zipkin:
base-url: http://172.18.123.230:9411/ #zipkin地址
discovery-client-enabled: false #不用开启服务发现
sleuth:
sampler:
probability: 1.0 #采样百分比
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/cloud_video?useUnicode=true&characterEncoding=utf-8&useSSL=false
username: root
password: xdclass.net
cloud:
nacos:
discovery:
server-addr: 172.18.123.229:8848
sentinel:
transport:
dashboard: 172.18.123.229:8858
port: 9998
mybatis:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
map-underscore-to-camel-case: true
- 订单服务配置
server:
port: 8001
spring:
application:
name: xdclass-order-service
zipkin:
base-url: http://172.18.123.230:9411/ #zipkin地址
discovery-client-enabled: false #不用开启服务发现
sleuth:
sampler:
probability: 1.0 #采样百分比
cloud:
nacos:
discovery:
server-addr: 172.18.123.229:8848
sentinel:
transport:
dashboard: 172.18.123.229:8858
port: 9999
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/cloud_order?useUnicode=true&characterEncoding=utf-8&useSSL=false
username: root
password: xdclass.net
# 控制台输出sql、下划线转驼峰
mybatis:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
map-underscore-to-camel-case: true
#使用随机负载均衡策略
xdclass-video-service:
ribbon:
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule
# 开启feign对Sentinel
feign:
sentinel:
enabled: true
第4集 阿里云ECS服务器快速安装Mysql数据库
简介:阿里云ECS服务器快速安装Mysql数据库
- 安装Mysql 5.7 (注意,Mysql和系统务必保持一致,不然存在不一致)
- 开启mysql远程连接(如果是准线上,建议不要开启远程连接)
- 开放阿里云网络安全组配置 3306 端口
- 导入数据库脚本到Mysql
#下载mysql的Yum仓库
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
#安装 mysql服务
yum -y install mysql-community-server
#启动数据库服务, systemctl 该命令可用于查看系统状态和管理系统及服务,centos7上开始使用
systemctl start mysqld.service
#查看状态
systemctl status mysqld.service
#在日志文件中查看初始密码
grep "password" /var/log/mysqld.log
#进入修改Mysql密码
mysql -uroot -p
#新密码设置必须由大小写字母、数字和特殊符号组成
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Xdclass.net168';
#开启mysql的远程访问, %是指全部
grant all privileges on *.* to 'root'@'%' identified by 'Xdclass.net168' with grant option;
#刷新权限
flush privileges;
第5集 AlibabaCloud视频和订单服务阿里云启动
简介:视频服务和订单服务容器启动
- 订单服务新增配置 video.title(配置动态刷新)
- 视频服务和订单服务启动
docker run --name xdclass-video -d -p 9000:9000 53f5604dcd76
docker run --name xdclass-order -d -p 8001:8001 16e0740b7525
- 开放网关服务的网络安全组 8888端口
- 机器
120.24.216.117(公)
172.18.123.230(私有)
2 vCPU 1 GiB (安装了Mysql/Zipkin服务)
112.74.55.160(公)
172.18.123.229(私有)
2 vCPU 4 GiB(安装了Nacos、Sentinel、网关、视频服务、订单服务)
- 视频服务
server:
port: 9000
spring:
application:
name: xdclass-video-service
zipkin:
base-url: http://172.18.123.230:9411/ #zipkin地址
discovery-client-enabled: false #不用开启服务发现
sleuth:
sampler:
probability: 1.0 #采样百分比
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://172.18.123.230:3306/cloud_video?useUnicode=true&characterEncoding=utf-8&useSSL=false
username: root
password: Xdclass.net168
cloud:
nacos:
discovery:
server-addr: 172.18.123.229:8848
sentinel:
transport:
dashboard: 172.18.123.229:8858
port: 9998
mybatis:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
map-underscore-to-camel-case: true
- 订单服务
server:
port: 8001
video:
title: alibabacloud
spring:
application:
name: xdclass-order-service
zipkin:
base-url: http://172.18.123.230:9411/ #zipkin地址
discovery-client-enabled: false #不用开启服务发现
sleuth:
sampler:
probability: 1.0 #采样百分比
cloud:
nacos:
discovery:
server-addr: 172.18.123.229:8848
sentinel:
transport:
dashboard: 172.18.123.229:8858
port: 9999
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://172.18.123.230:3306/cloud_order?useUnicode=true&characterEncoding=utf-8&useSSL=false
username: root
password: Xdclass.net168
# 控制台输出sql、下划线转驼峰
mybatis:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
map-underscore-to-camel-case: true
#使用随机负载均衡策略
xdclass-video-service:
ribbon:
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule
# 开启feign对Sentinel
feign:
sentinel:
enabled: true
- 网关服务
server:
port: 8888
spring:
application:
name: api-gateway
zipkin:
base-url: http://172.18.123.230:9411/ #zipkin地址
discovery-client-enabled: false #不用开启服务发现
sleuth:
sampler:
probability: 1.0 #采样百分比
cloud:
nacos:
discovery:
server-addr: 172.18.123.229:8848
gateway:
routes: #数组形式
- id: order-service #路由唯一标识
#uri: http://127.0.0.1:8000 #想要转发到的地址
uri: lb://xdclass-order-service #从nocas进行转发
order: 1 #优先级,数字越小优先级越高
predicates: #断言 配置哪个路径才转发
- Path=/order-server/**
#- Before=2020-09-11T01:01:01.000+08:00 # 在这个时间点之后不能访问
#- Query=source #一定携带这个参数
filters: #过滤器,请求在传递过程中通过过滤器修改
- StripPrefix=1 #去掉第一层前缀
discovery:
locator:
enabled: true #开启网关拉取nacos的服务
第6集 微服务阿里云部署全链路验证和线上测试
简介:全链路验证AlibabaCloud微服务
- 全链路验证
http://112.74.55.160:8888/order-server/api/v1/video_order/save?videoId=41
- 限流验证
- 配置中心动态刷新验证
- 链路追踪验证
- 内外网隔离