Spring Cloud基本概念
spring cloud的核心组件有哪些?
Eureka:服务注册与发现,Eureka细分为 Eureka Server 和 Eureka Client。
Feign:是一个声明式的web服务客户端,整合了Ribbon,具有负载均衡的能力,整合了Hystrix,具有熔断的能力
Ribbon:
1、Ribbon是一个基于Http和TCP的客户端负载均衡工具,它是基于Netflix Ribbon实现的。
2、在Spring Cloud中,有两种服务调用方式,一种是Ribbon+RestTemplate,另一种是Feign。
Hystrix(熔断器):
解决分布式系统交互时超时处理和容错的类库,保护服务正常运行,避免服务雪崩的问题。
https://www.cnblogs.com/linjiqin/p/9754990.htspring cloudml
Zuul:网关管理,由 Zuul 网关转发请求给对应的服务。
Spring Cloud Config:配置中心
SpringCloud Bus:消息总线
eureka自我保护机制是什么?
当Eureka Server节点在短时间内丢失过多的客户端时(比如网络故障或频繁启动关闭客户端),节点会进入自我保护模式,不再注销任何服务,当网络故障恢复后,节点自动退出自我保护模式。
eureka原理
服务启动后向Eureka注册,Eureka Server会将注册信息向其他Eureka Server进行同步,当服务消费者要调用服务提供者,则向服务注册中心获取服务提供者地址,然后会将服务提供者地址缓存在本地,下次再调用时,则直接从本地缓存中取,完成一次调用。
当服务注册中心Eureka Server检测到服务提供者因为宕机、网络原因不可用时,则在服务注册中心将服务置为DOWN状态,并把当前服务提供者状态向订阅者发布,订阅过的服务消费者更新本地缓存。
服务提供者在启动后,周期性(默认30秒)向Eureka Server发送心跳,以证明当前服务是可用状态。Eureka Server在一定的时间(默认90秒)未收到客户端的心跳,则认为服务宕机,注销该实例。