SpringCloud基础(0)

来源:互联网 发布:苏州高博java培训 编辑:程序博客网 时间:2024/06/10 13:58

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做了二次封装,主要负责完成微服务架构中的服务治理功能。

Spring Cloud中有四个基础组件,分别是Spring Cloud Config配置中心,Spring Cloud Eureka,Spring Cloud Hystrix断路器,Spring Cloud Zuul服务网关。

(1) Spring Cloud Config把应用原本放在本地的配置抽取出来放在中心服务器,本质是配置信息从本地迁移到云端,从而能提供更好的管理和发布能力。Spring Cloud Config分服务端和客户端,服务端负责将git或svn中存储的配置文件发布成REST接口,客户端可以从服务端REST接口获取配置。但客户端并不能主动感知到配置的变化,从而主动去获取新的配置,这需要每个客户端通过POST方法触发各自的/refresh。

(2) Spring Cloud Eureka主要内容是对Netflix Eureka的包装,提供在分布式环境下的服务发现,服务注册的功能。

(3) Spring Cloud Hystrix是一种能够在远程服务不可用时自动熔断(打开开关),并在远程服务恢复时自动恢复的设施(关闭开关)。Spring Cloud通过Netflix的Hystrix组件提供断路器,资源隔离与自我修复功能。
(4) Spring Cloud Zuul服务网关

Spring Cloud官方网站:http://projects.spring.io/spring-cloud/。(有个很有意思的地方,Spring Cloud版本名称按照a-z顺序的伦敦地铁站名称来命名)

原创粉丝点击