返回总纲
一、Spring Cloud是什么?
Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。
Spring Cloud对于中小型互联网公司来说是一种福音,因为这类公司往往没有实力或者没有足够的资金投入去开发自己的分布式系统基础设施,使用Spring Cloud一站式解决方案能在从容应对业务发展的同时大大减少开发成本。同时,随着近几年微服务架构和Docker容器概念的火爆,也会让Spring Cloud在未来越来越“云”化的软件开发风格中立有一席之地,尤其是在目前五花八门的分布式解决方案中提供了标准化的、全站式的技术方案,意义可能会堪比当年Servlet规范的诞生,有效推进服务端软件系统技术水平的进步。
Spring Cloud提供了一套完整的微服务和分布式的体系架构。并且周边服务组件也是能无缝结合。
温习提示:学习Spring Cloud之前最好先有Spring boot基础。
二、Spring Cloud组件有哪些?
1、spring cloud config 配置管理工具,支持使用git存储配置来实现应用外部配置化,支持远程客户端读取
2、springcloud Netflix :核心组件
- Netflix Eureka:一个基于rest服务的服务治理组件,包括服务注册中心、服务注册与服务发现机制的实现,实现了云端负载均衡和中间层服务器的故障转移。
- Netflix Hystrix:容错管理工具,实现断路器模式,通过控制服务的节点,从而对延迟和故障提供更强大的容错能力。
- Netflix Ribbon:客户端负载均衡的服务调用组件。
- Netflix Feign:基于Ribbon和Hystrix的声明式服务调用组件。
- Netflix Zuul:微服务网关,提供动态路由,访问过滤等服务。
- Netflix Archaius:配置管理API,包含一系列配置管理API,提供动态类型化属性、线程安全配置操作、轮询框架、回调机制等功能。
3、spring cloud Bus: 事件,消息总线,用于集群中消息传递、状态变化、事件等动作,触发后续的业务联动性
4、spring cloud Cluster :针对 zookeeper Redis Hazelcast Consul 的选举算法和通用状态模式的实现
5、spring cloud Cloudfoundry: 与 pivotalCloudFoundry的整合支持
6、spring cloud Consul :服务发现与配置管理工具
7、springcloud Stream :通过Redis ,Rabbit,Kafka 实现消息微服务,可以用过消息队列形式发送和接受消息
8、spring cloud Security :安全工具组件
9、spring cloud Sleuth :springcloud 应用的分布式跟踪实现
10、spring cloud zookeeper :基于zookeeper的服务发现和配置管理组件
11、Spring Cloud for Cloud Foundry:通过Oauth2协议绑定服务到CloudFoundry,CloudFoundry是VMware推出的开源PaaS云平台。
12、Spring Cloud Data Flow:大数据操作工具,通过命令行方式操作数据流。
13、Spring Cloud CLI:基于 Spring Boot CLI,可以让你以命令行方式快速建立云组件。
14、spring cloud Starters :springcloud 的基础组件,它是基于springboot风格项目的基础依赖模块
可以用以上的这些组件去快速的构建需要的项目,Spring Cloud给我提供了很多组件,组件之间基本都可以无缝连接。不过需要注意Spring boot版本和Spring Cloud版本是有对应关系的。
以后演示的demo版本是:spring boot2.0.2.RELASE + spring cloud 的Finchley版
一般用spring-cloud组件的项目架构图(每个公司都不一样,根据具体的需求组装:仅供参考):