在线教育day10

任务:前端

  1. 添加小节删除
    (1)删除阿里云视频web

  2. Spring Cloud微服务
    (1)删除小节时,删除阿里云视频
    (2)删除课程时,删除阿里云视频数据库


1. 删除阿里云视频

  • 后端
    在这里插入图片描述后端

  • api中调用
    在这里插入图片描述api

  • 页面中调用
    在这里插入图片描述架构

bug:
添加视频,而后删除视频,点击提交章节按钮,即不添加视频,提交后数据库中还有视频数据。框架

缘由:在添加视频时,将视频id和name赋值给data中的对象,删除视频后,只是删除了阿里云的视频,而对象中的视频信息还在。分布式

解决: 删除视频时,将视频信息也清空。
**注意:**不能在删除后赋值,不然无法删除,根据id删除,而id没有。ide

在这里插入图片描述
测试:
在这里插入图片描述svg


2. 微服务

2.1 微服务介绍

  • 微服务是一种架构风格;
  • 能够将一个项目拆分红多个服务,服务之间独立运行,占用独立进程;
  • 每一个服务能够使用不一样的技术;

2.2 微服务框架

2.2.1 Spring Cloud
  • 不是一种技术,是不少技术的总称,不少技术集合;
  • 里面有不少框架(技术),使用Spring Clould框架来实现微服务操做;
  • 使用SpringClould, 依赖于Spring Boot。
2.2.2 Spring Cloud 相关基础服务组件

服务发现 Nacos
在这里插入图片描述
在这里插入图片描述
服务发现 (Nacos)
服务调用
熔断器 (Hystrix)
服务网关
分布式配置
消息总线


场景实现
在这里插入图片描述

  1. 引入依赖
    在这里插入图片描述
  2. 在要注册的服务的配置文件中配置Nacos
    在这里插入图片描述
  3. 在启动类上添加注解
    在这里插入图片描述

同理注册service-vod。重启项目并测试:
在这里插入图片描述


配置Feign

  1. 引入依赖
    在这里插入图片描述
  2. 调用端服务启动类添加注解

调用—在调用端写代码
在这里插入图片描述

  1. 调用端建立Interface接口;使用注解指定调用服务名称;定义服务的方法路径;
    在这里插入图片描述
    在这里插入图片描述
  2. 调用方法:删小节时删视频
    在这里插入图片描述

此时启动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上添加注解和属性
在这里插入图片描述
测试:
在这里插入图片描述


(完)