Spring Cloud是用于构建健壮的云应用程序的框架。 该框架通过为移动到分布式环境时面临的许多常见问题提供解决方案来促进应用程序的开发。
使用微服务架构运行的应用程序旨在简化开发,部署和维护。 应用程序的分解特性允许开发人员一次关注一个问题。 可以在不影响系统其他部分的情况下引入改进。
Spring Cloud 是一系列框架的有序集合。它利用 Spring Boot 的开发便利性巧妙地简 化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、 熔断器、数据监控等,都可以用 Spring Boot 的开发风格做到一键启动和部署。 Spring 并 没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框 架组合起来,通过 Spring Boot 风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给 开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。
Spring Cloud 项目的官方网址: http://projects.spring.io/spring-cloud/
Spring Boot 是 Spring 的一套快速配置脚手架,可以基于 Spring Boot 快速开发单 个微服务, Spring Cloud 是一个基于 Spring Boot 实现的云应用开发工具; Spring Boot 专 注于快速、方便集成的单个微服务个体, Spring Cloud 关注全局的服务治理框架; Spring Boot 使用了默认大于配置的理念,很多集成方案已经帮你选择好了,能不配置就 不配置, Spring Cloud 很大的一部分是基于 Spring Boot 来实现,可以不基于 Spring Boot 吗?不可以。
Spring Boot 可以离开 Spring Cloud 独立使用开发项目,但是 Spring Cloud 离不开 Spring Boot ,属于依赖的关系。
或许很多人会说 Spring Cloud 和 Dubbo 的对比有点不公平, Dubbo 只是实现了服务治 理,而 Spring Cloud 下面有 17 个子项目(可能还会新增)分别覆盖了微服务架构下的方 方面面,服务治理只是其中的一个方面,一定程度来说, Dubbo 只是 Spring Cloud Netflix 中的一个子集。
Dubbo | Spring Cloud | |
服务注册中心 | Zookeeper | Spring Cloud Netflix Eureka |
服务调用方式 | RPC | REST API |
服务网关 | 无 | Spring Cloud Netflix Zuul |
熔断器 | 不完善 | Spring Cloud Netflix Hystrix |
分布式配置 | 无 | Spring Cloud Config |
服务跟踪 | 无 | Spring Cloud Sleuth |
消息总线 | 无 | Spring Cloud Bus |
数据流 | 无 | Spring Cloud Stream |
批量任务 | 无 | Spring Cloud Task |
...... | ...... | ...... |