Spring cloud框架的核心组件?
Spring cloud是全局的微服务协调治理框架,是一系列优秀框架的有序集合
Eureka 服务注册与发现 zuul 服务网关 Ribbon 客户端负载均衡 Feign 声明式web服务客户端 Hystrix 断路器 config 配置中心 Spring cloud Bus 消息总线
Spring coud断路器的作用?
当一个服务调用另一个服务,由于自身问题或者网络原因,调用者就等待被调用者的响应,当更多的服务请求到这些资源的时候就造成更多的请求等待,也就是雪崩效应
Hystrix防止雪崩的四种方式:
服务降级:接口服务调用失败就会调用一个本地方法返回失败
服务熔断:接口服务调用失败就会进入调用接口提前定义好的一个熔断的方法,返回错误信息
服务隔离:隔离服务之间的相互影响,服务隔离有线程池和信号量两种方式,一般使用线程池方式
服务监控:在服务发生调用时,会将每秒的请求数,成功请求数等运行指标记录下来
Spring cloudFeign
启动时,程序扫描包下所有@FeignClient注解的类,并注入到IOC容器中,当定义的Feign中接口被调用时,通过JDK动态代理来生成RequestTemplate
RequestTemplate包含请求的所有信息,请求参数,请求url等
RequestTemplate生成Request,然后将Request交给JDK客户端HTTPUrlConnection,也可以是Okhttp等
最后客户端封装成LoadBalanceClient,结合ribbon负载均衡发起调用