zoukankan      html  css  js  c++  java
  • SpringBoot 之 拦截配置 与SpringCloud

    个人博客网:https://wushaopei.github.io/    (你想要这里多有)

    一、SpringBoot 与 SpringMVC  的区别?

    SpringMVC是基于Spring的MVC框架,

    而Spring Boot是基于Spring配置的开发工具框架,使用注解更加简洁和适应快速开发。

    二、SpringBoot的启动机制?

    从代码上看,调用了SpringApplication的静态方法run,这个run方法会构造一个SpringApplication的实例,然后再调用这里实例的run方法就表示启动SpringBoot.

    具体的实例流程:

    1. 构造SpringApplication的实例
    2. 调用SpringApplication.run()方法

              构造SpringApplicationRunListeners实例

               发布ApplicationStartedEvent事件

              SpringApplicationRunListeners实例准备环境信息

             创建ApplicationContext对象

              ApplicationContext实例准备环境信息

              刷新的上下文

    最重要的注解:

    • @Configuration(@SpringBootConfiguration点开查看发现里面还是应用了@Configuration)
    • @EnableAutoConfiguration
    • @ComponentScan

    每次写这3个比较累,所以写一个@SpringBootApplication方便点。

    三、 基于继承SpringBoot 的拦截器实现异常拦截?

    继承springboot的RuntimeException拦截器创建的异常拦截,定义全局异常拦截器:继承自RuntimeException,在业务代码中专注处理业务,而不是返回各种CodeMsg(比如这里只需要知道登录时成功还是失败,其余情况直接抛出异常),可以直接抛出异常,添加一个全局异常类,根据CodeMsg来生成异常, 交由GlobalExceptionHandler全局异常处理器处理(在其中增加if条件分支即可)

    登录拦截是通过实现HandlerInterceptor 拦截器达到的拦截URL请求

    四、SpringBoot在实际项目中的作用是什么?(开启事务管理)

    Spring Boot 通过一个自动配置和启动的项来解决Spring或SpringMVC中配置大量参数问题。为了更快的构建产品就绪应用程序,Spring Boot 提供了一些非功能性特征。同时他也是应用的主入口类,并且提供事务管理的功能(在Springboot中添加@EnableTransactionManagement注解,在对应的service方法上添加@Transactional注解便可启动事务)。

    五、SpringCloud是怎么进行限流的?

    Hystrix使用线程池隔离,超过线程池的负载,走熔断的逻辑。在一般应用服务器中,比如tomcat容器也是通过限制它的线程数来控制并发的;也有通过时间窗口的平均速度来控制流量。常见的限流纬度有比如通过Ip来限流、通过uri来限流、通过用户访问频次来限流。

    SpringCloud Gateway限流

    六、关于SpringCloud 中服务熔断、服务雪崩、服务监视?

    服务熔断:

    当扇出链路的某个微服务不可用或者响应时间太长时,会进行服务的降级,进而熔断该节点微服务的调用,快速返回“错误”的响应信息。一般是某个服务故障或异常引起,类似保险丝,当某个异常条件被触发,直接熔断整个服务,而不是一直等到服务超时。发生在服务端

    服务降级: 

    通过切面的方式,在客户端实现服务熔断的效果。一般是从整体负荷考虑。当某个服务熔断后,服务器不可以被调用,此时客户端可以自己准备一个本地的Fallback回调,返回一个缺省值。这样做,虽然服务水平下降,但好歹可以使用,比直接挂掉要好。

    服务雪崩效应:

    是一种因“服务提供者的不可用”(原因)导致“服务调用者不可用”(结果),并将不可用逐渐放大的现象。

     

  • 相关阅读:
    Gram 矩阵性质及应用
    Gram 矩阵性质及应用
    经典公开课、好的学习网站
    经典公开课、好的学习网站
    机器学习、深度学习经典课程
    机器学习、深度学习经典课程
    机器学习竞赛(代码)
    机器学习竞赛(代码)
    数学类网站、代码(Matlab & Python & R)
    数学类网站、代码(Matlab & Python & R)
  • 原文地址:https://www.cnblogs.com/wushaopei/p/11979306.html
Copyright © 2011-2022 走看看