任务:
-
添加小节删除
(1)删除阿里云视频 -
Spring Cloud微服务
(1)删除小节时,删除阿里云视频
(2)删除课程时,删除阿里云视频
1. 删除阿里云视频
-
后端
-
api中调用
-
页面中调用
bug:
添加视频,然后删除视频,点击提交章节按钮,即不添加视频,提交后数据库中还有视频数据。
原因:在添加视频时,将视频id和name赋值给data中的对象,删除视频后,只是删除了阿里云的视频,而对象中的视频信息还在。
解决: 删除视频时,将视频信息也清空。
**注意:**不能在删除后赋值,否则没法删除,根据id删除,而id没有。
测试:
2. 微服务
2.1 微服务介绍
- 微服务是一种架构风格;
- 可以将一个项目拆分成多个服务,服务之间独立运行,占用独立进程;
- 每个服务可以使用不同的技术;
2.2 微服务框架
2.2.1 Spring Cloud
- 不是一种技术,是很多技术的总称,很多技术集合;
- 里面有很多框架(技术),使用Spring Clould框架来实现微服务操作;
- 使用SpringClould, 依赖于Spring Boot。
2.2.2 Spring Cloud 相关基础服务组件
服务发现 Nacos
服务发现 (Nacos)
服务调用
熔断器 (Hystrix)
服务网关
分布式配置
消息总线
场景实现 :
- 引入依赖
- 在要注册的服务的配置文件中配置Nacos
- 在启动类上添加注解
同理注册service-vod。重启项目并测试:
配置Feign
- 引入依赖
- 调用端服务启动类添加注解
调用—在调用端写代码
- 调用端创建Interface接口;使用注解指定调用服务名称;定义服务的方法路径;
- 调用方法:删小节时删视频
此时启动service-oss,日志:
service中注册了nacos,所以service-oss在启动时发现父类注册了nacos,就去找自己的相关配置,找不到,就发生异常。不影响使用
- service-oss也注册nacos
3. 删除课程同时删除阿里云视频
- Service
- Controller
- service-edu创建的接口中定义方法。
- 在service-edu中调用service-vod的删除多个视频的方法
重启service-edu:
添加泛型
测试:测试成功
调用过程:前端->EduCourseController->EduCourseService->vodClient.deleteBatch(videoIds);请求service-video服务->Controller->Service
Spring Cloud接口调用过程
Hystrix熔断器
使用:
1. 添加依赖
2. 在调用端配置文件中开启熔断器
3. 在创建Interface后,创建对应实现类,输出出错时的处理。
4. Interface上添加注解和属性
测试:
(完)