目录:
SpringCloud基础(0)
SpringCloud基础(1)
SpringCloud基础(2)
SpringCloud基础(3)
SpringCloud基础(4)
SpringCloud基础(5)
Spring Cloud是一系列框架的有序集合,是一个分布式系统基础设施的解决方案。利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring并没有重复造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装,屏蔽了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。
Spring Cloud的子项目大致可以分为两类,一类是对现有成熟框架进行Spring Boot风格化的封装和抽象,第二类是开发了一部分分布式系统的基础设施的实现,如Spring Cloud Stream扮演的就是kafka,ActiveMQ这样的角色。一般情况下,第一类子项目就已经足够使用。这类子项目主要有:
-
Spring Cloud Netflix
该框架是Netflix开发的一套分布式服务框架的封装。包括服务的发现和注册(Netflix Eureka)、负载均衡(Ribbon)、断路器(Hystrix)、REST客户端、请求路由等。 -
Spring Cloud Config
将配置信息中央化保存,配置Spring Cloud Bus可以实现动态修改配置文件 -
Spring Cloud Security
分布式消息队列,是对Kafka,MQ的封装。 -
Spring Cloud Zookeeper
对Zookeeper的封装,使之能配置其他Spring Cloud的子项目使用。 -
Spring Cloud Eureka
它是Spring Cloud Netflix微服务套件中的一部分,基于Netflix Eureka做了二次封装,主要负责完成微服务架构中的服务治理功能。
更新:由于Eureka宣布闭源,服务注册中心由Consul取代。Consul为HashiCorp旗下产品,商业版不允许在中国使用,开源版可以。
Spring Cloud中有四个基础组件,分别是Spring Cloud Config配置中心,Spring Cloud Eureka,Spring Cloud Hystrix断路器,Spring Cloud Zuul服务网关。
Spring Cloud Config
Spring Cloud Config把应用原本放在本地的配置抽取出来放在中心服务器,本质是配置信息从本地迁移到云端,从而能提供更好的管理和发布能力。Spring Cloud Config分服务端和客户端,服务端负责将git或svn中存储的配置文件发布成REST接口,客户端可以从服务端REST接口获取配置。但客户端并不能主动感知到配置的变化,从而主动去获取新的配置,这需要每个客户端通过POST方法触发各自的/refresh。
Spring Cloud Eureka
Spring Cloud Eureka主要内容是对Netflix Eureka的包装,提供在分布式环境下的服务发现,服务注册的功能。
Spring Cloud Hystrix
Spring Cloud Hystrix是一种能够在远程服务不可用时自动熔断(打开开关),并在远程服务恢复时自动恢复的设施(关闭开关)。Spring Cloud通过Netflix的Hystrix组件提供断路器,资源隔离与自我修复功能。
Spring Cloud Zuul
Spring Cloud Zuul服务网关
Spring Cloud官方网站:http://projects.spring.io/spring-cloud/。(有个很有意思的地方,Spring Cloud版本名称按照a-z顺序的伦敦地铁站名称来命名)