SpringCloud简介及核心组件介绍

Spring Cloud作为Java语言的微服务框架,它依赖于Spring Boot,有快速开发、持续交付和容易部署等特点。Spring Cloud的组件非常多,涉及微服务的方方面面。主要功能有:服务的注册和发现,服务的负载均衡,服务的容错,服务网关,服务配置的统一管理,链路追踪,实时日志等。常用的组件有Spring Cloud Netflix组件下的,服务注册与发现组件 Eureka、网关路由组件Zuul、负载均衡组件Ribbon、声明式调用Feign、熔断器组件Hystrix。

1.Eureka

Eureka是一个服务注册与发现组件,Eureka包含两个组件:Eureka Server和Eureka Client,分别为Eureka的注册中心和客户端。底层使用ConcurrentHashMap保存多个实例信息。

2.Zuul

Zuul是一个API Gateway服务器,本质上是一个Web Servlet应用。Zuul 提供了动态路由、监控等服务,这些功能实现的核心是一系列的filters(过滤器)

3.Ribbon

Ribbon是一个负载均衡组件,它通常和Eureka、Zuul、RestTemplate、Feign配合使用。Ribbon和Zuul配合,很容易做到负载均衡,将请求根据负载均衡策略分配到不同的服务实例中。

4.Feign

Feign定义接口,并在接口上添加注解,消费者通过调用接口的形式进行消费。Feign采用了声明式API接口,将Java Http 客户端绑定到它的内部。Feign可以整合Hystrix,实现熔断降级的功能。

微服务之间存在着相互调用的场景,Ribbon和Feign就是为了解决微服务之间的服务调用。

5.Hystrix

熔断器。在分布式系统中,服务与服务之间的依赖错综复杂,一种不可避免的情况就是某些服务会出现故障,导致依赖于它们的其他服务出现远程调度的线程阻塞。Hystrix提供了熔断器功能,能够阻止分布式系统中出现联动故障。Hystrix是通过隔离服务的访问点阻止联动故障的,并提供了故障的解决方案,从而提高整个分布式系统的弹性。

Hystrix的三个特性:断路器机制、Fallback、资源隔离

断路器机制:当Hystrix Command请求后端服务器失败数量超过一个阈值比例,断路器就会切换到开路状态

Fallback:降级回滚策略

资源隔离:不同的微服务调用不同的线程池来管理

基础服务的故障可能会导致级联的故障,进而造成整个系统不可用的情况,即服务雪崩。

6.其他组件

SpringCloud Config 配置中心。为分布式系统提供了配置服务器和配置客户端,通过对它们的配置,可以很好地管理集群中的配置文件。Spring Cloud Sleuth 服务跟踪框架,可以 Zipkin Apache HTrace ELK 等数据分析、服务跟踪系统进行整合,为服务跟踪、解决问题提供了便利。

 

猜你喜欢

转载自blog.csdn.net/lovebaby1689/article/details/104348378