1.Springboot自动配置的原理

@SpringBootApplication或者是@EnableAutoConfiguration会自动去maven中读取starter中的spring.factories文件,该文件配置了所有需要被spring容器创建的bean

2.springboot读取配置文件的方式

    springboot默认读取配置文件为application.properties或者是application.yml

3.springcloud如何实现服务的注册和发现


    这一个过程时springcloud自动实现,只需要在main方法中添加@EnableDiscoveryClient 同一个服务修改端口就可以

    启动多个实例。

    调用方法:传递服务名称通过注册中心获取所有的可用的服务的实例,通过负载均衡策略(ribbo/feign)对服务进行调用

4.ribbon和feign的区别

   ①启动类不同,ribbon用的时@RibbonClient,feign用的时@EnableFeignClients

   ②服务的指定位置不同,Ribbon是在@RibbonClient注解上申明,Feign则是定义在抽象方法的接口中使用@FeignClient声明

    ③调用的方式不同,Ribbon需要自己构建http请求,模拟http请求然后使用RestTemplate发送给其他服务,步骤相当繁琐,

      Feign则是在Ribbon的基础上进行了一次改进,采用接口的方式,将需要调用的其他服务的方法定义成抽象方法即可

      不需要自己构建http请求,不过要注意的是抽象方法的注解、方法签名要和提供服务的方法完全一致。

5.springcloud断路器的作用


    调用被调用着时而导致更多的服务调用着等待,这就引起了来连锁反应(雪崩效应),断路器就是为了解决这个问题

    ①断路器全开状态:一定的时间内,达到一定的调用次数无法调用,并且多少检测没有恢复的迹象,断路器全开

                         那么下一次请求就不会请求到该服务

    ②断路器半开状态:短时间内 有恢复的迹象,断路器就会将请求发送给该服务,当能正常使用时,断路器关闭

    ③关闭状态:当服务一直处于正常状态,能正常调用,断路器关闭