Spring Cloud 介绍及核心模块概览
在众多的微服务框架中, Spring Cloud是一个相对比较新的微服务框架,2016才推出1.0的release版本. 虽然Spring Cloud时间最短, 但是相比Dubbo等RPC框架, Spring Cloud提供的全套的分布式系统解决方案。
Spring Cloud解决的第一个问题就是:服务与服务之间的解耦。很多公司在业务高速发展的时候,服务组件也会相应的不断增加。服务和服务之间有着复杂的相互调用关系,经常有服务A调用服务B,服务B调用服务C和服务D ...,随着服务化组件的不断增多,服务之间的调用关系成指数级别的增长,极端情况下就如下图所示:
这样最容易导致的情况就是牵一发而动全身。经常出现由于某个服务更新而没有通知到其它服务,导致上线后惨案频发。这时候就应该进行服务治理,将服务之间的直接依赖转化为服务对服务中心的依赖。Spring Cloud 核心组件Eureka就是解决这类问题。
Spring Cloud 为开发者提供了在分布式系统(服务的注册与发现,熔断,熔断监控,统一的配置中心,网关,分布式追踪,微代理,控制总线,一次性token,全局琐,leader选举,分布式session,集群状态)中快速构建的工具,使用Spring Cloud的开发者可以快速的启动服务或构建应用、同时能够快速和云平台资源进行对接。
我们先简单阐述下Spring Cloud中文社区对几个基础关键组件的描述:
Spring Cloud核心组件(一)Eureka
核心功能:提供服务的注册与发现,相当于一个服务中心,动态的管理着服务的状态
优点:
1.故障转移 2.水平扩展 3.注册中心支持集群化
Spring Cloud核心组件(二) Hystrix
雪崩效应:基础服务的故障可能会导致级联故障,进而造成整个系统不可用
故障隔离:
接口异常时熔断、监测到接口恢复时重新提供服务