Spring Cloud 是一个基于SpringBoot实现的微服务架构开发工具。它为微服务架构中涉及的配置管理、服务治理、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。
一. 微服务与微服务架构
微服务
微服务英文名称Microservice,Microservice架构模式就是将整个Web应用组织为一系列小的Web服务。这些小的Web服务可以独立地编译及部署,并通过各自暴露的API接口相互通讯。它们彼此相互协作,作为一个整体为用户提供功能,却可以独立地进行扩。
微服务架构
微服务架构是⼀种架构模式,它提倡将单⼀应⽤程序划分成⼀组⼩的服务,服务之间互相协调、互相配合,为⽤户提供最终价值。每个服务运⾏在其独⽴的进程中,服务与服务间采⽤轻量级的通信机制互相协作(通常是基于HTTP协议的RESTful API)。每个服务都围绕着具体业务进⾏构建,并且能够被独⽴的部署到⽣产环境、类⽣产环境等。另外,应当尽量避免统⼀的、集中式的服务管理机制,对具体的⼀个服务⽽⾔,应根据业务上下⽂,选择合适的语⾔、⼯具对其进⾏构建。
二、为什么选择SpringCloud
近几年很多人对于微服务架构的热情非常高,无数架构师和开发者为此付出了诸多努力,同时也分享了他们针对不同应用场景出现的各种问题的各种解决方案和开源框架。
- 服务治理:阿里巴巴开源的bubbo和当当网在其基础上扩展的DubboX、Netflix的Eureka、Apache的Consul等。
- 分布式配置管理:百度的Disconf、Netfilx的Archaius、360的QConf等
- 批量任务:当当网的Elastic-Job、LinkedIn的Azkaban、Spring Cloud的Task等。
但是上面列举的框架只能解决微服务中的的某一个问题,不是综合性解决框架,而Spring Cloud的正式这样一综合性解决框架。
Spring Cloud包含多个子项目:
- Spring Cloud Config:配置管理工具,持git存储配置内容, 可以实现应用外部存储配置,并支持客户端配置信息刷新、加密/解密配置内容等。
- Spring Cloud Netflix:核心组件,对多个Netflix OSS开源套件进行整合。
- spring cloud bus : 消息事件总线
- spring cloud Cluster: 针对Zookeeper, Redis , Consul 的选举算法和通用状态模式的实现。
- spring cloud cloudFundary: 与Pivotal CloudFundary整合支持。
- spring Cloud Consul: 服务发现与配置管理工具
- spring cloud security :安全工具包
- spring cloud sleuth : 访问路径的追踪 可以整合zipkin
- spring cloud zookeeper : 基于zookeeper 的服务发现和管理组件。
- spring cloud starters: Spring Cloud的基础组件,它是基于Spring Boot 风格项目的基础依赖模块.
- spring cloud cli : 用于在Groovy中快速创建Spring Cloud应用的Spring Boot CLI插件。
- ……