SpringCloud概述
一、SpringCloud是什么
- 简化的分布式系统。构建分布式系统不仅复杂且容易出错。Spring Cloud为最常见的分布式系统模式。提供了简单易用的编程模型,帮助开发人员构建弹性,可靠和协调的应用程序。
- Spring Cloud构建于Spring Boot之上,使开发人员可以轻松入门并快速提高工作效率。
- Spring Cloud提供一套分布式的微服务架构一站式的解决方案,是各个微服务架构技术的集合体。
- Spring Cloud利用SpringBoot开发的便利性,巧妙的简化了分布式系统的基本设施开发,并且提供了快速的构建分布式系统的一些工具,其中包括配置管理、服务发现、熔断器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等,都可以使用SpringBoot的开发风格一键启动和部署。
- SpringBoot只是将目前各个公司比较成熟服务框架结合起来,并通过Spring的风格进行封装屏蔽了复杂的配置和实现原理,最终给开发者提供一套简单易懂、容易部署与维护的分布式系统开发工具包。
官网说明:
二、Spring Cloud与Spring Boot的区别
- SpringBoot专注于快捷的方便开发单个个体微服务
- SpringCloud关注全局的微服务协调治理框架,它将SpringBoot开发的一个个单体微服务整合并管理起来,为各个微服务之间提供,配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等集成服务。
- SpringBoot可以离开SpringCloud独立的进行开发项目,反之SpringCloud是离不开SpringBoot,属于依赖的关系。通俗的说水中可以没有鱼,但是有鱼必须要有水。
三、Dubbo与SpringCloud的区别
1. 社区的活跃度
dubbo:https://github.com/dubbo
spring-cloud:https://github.com/spring-cloud
2. Dubbo与SpringCloud的对比
- Spring遗弃了Dubbo的RPC通信,采用了基于HTTP的REST方式。
- REST比RPCG更加灵活,服务提供方和调用方的依赖只是需要一纸的协议,不存在代码的级别依赖,在快速的演化的微服务环境下,显得的更加灵活了。
- Spring Cloud的功能比Dubbo更加强大,覆盖更加广泛,能够完美的融合Spring Data,Spring Boot ,Spring Bacth等等其他的Spring的项目,就如同名牌的电脑做了大量的兼容的测试。
- Dubbo就如同组装的电脑什么样的技术都有没有做过兼容测试,总会出现乱七八糟的问题。
- DUBBO停止了5年左右的更新,在2017.7才重新启动更新。对于技术的新需求,都需要开发这自行拓展了如(当当网的DubboX),对于采用微服务架构的中小组织就不合适了没有那么强大的技术进行维护与修改Dubbo的源码以及周边的问题的解决方案。
- Dubbo定位于一款RPC的框架,而SpringCloud的目标是微服务架构下的一站式解决的方案,在面临微服务的技术架构下,Dubbo与SpringCloud只能二选一。
四、Spring Cloud的参考文档与官网以及简绍
- 官网:http://projects.spring.io/spring-cloud/
- 中文参考文档:https://springcloud.cc/spring-cloud-netflix.html
- 英文开发文档:http://cloud.spring.io/spring-cloud-static/Dalston.SR1/
- 中文开发文档:https://springcloud.cc/spring-cloud-dalston.html
- 中国社区:http://springcloud.cn/
- 中文社区:https://springcloud.cc/
五、Spring Cloud包含的模块
- 服务的注册与发现(Eureka)
- 服务消费者(REST+Ribbon)
- 服务消费者(Feign)
- 熔断器(Hystrix)
- 熔断监控(Hystrix Dashboard)
- 路由网关(Zuul)
- 分布式配置中心(Spring Cloud Config)
- 消息总线(Spring Cloud Bus)
- 服务链路追踪(Spring Cloud Sleuth)
- Distributed/versioned configuration(分布式/版本控制配置)
- Service registration and discovery(服务注册与发现)
- Routing(路由)
- Service-to-service calls(服务到服务的调用)
- Load balancing(负载均衡配置)
- Circuit Breakers(断路器)
- Distributed messaging(分布式消息管理)
- 。。。。。。