Spring Cloud是什么?
Spring Cloud是一个基于Spring Boot实现的微服务架构开发工具。
Spring Cloud的首要目标就是通过提供一系列开发组件和框架,帮助开发者迅速搭建一个分布式的微服务系统。
Spring Cloud提供了什么功能?
搭建微服务系统时,就会面临一些常见问题:
1.服务的注册和发现
2.负载均衡
3.服务容错
4.网关
5.配置的统一管理
6.链路追踪
7.实时日志
对于这些常见的问题,Spring Cloud都有相应的方案。
Spring Cloud为微服务架构中涉及的配置管理、服务治理、断路由、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。
常见的组件有:
组件 | 功能 | 备注 |
---|---|---|
Spring Cloud Eureka | 服务注册和发现 | Spring Cloud Consul、Spring Cloud Zookeeper也是一个服务注册和发现的组件 |
Spring Cloud Ribbon | 负载均衡 | |
Spring Cloud Feign | 声明式远程调用组件 | |
Spring Cloud Hystrix | 熔断组件 | 服务限流,服务降级 |
Spring Cloud Zuul | 路由网关 | 智能路由,请求过滤,安全验证,权限控制等。 |
Spring Cloud Config | 服务配置中心 | 集中管理配置,动态刷新。 |
Spring Cloud Bus | 消息总线组件 | 一般和Spring Cloud Config配合使用 |
Spring Cloud Sleuth | 分布式链路追踪 | |
Spring Cloud Security | 安全模块组件 | 对Spring Security的封装,通常结合OAuth2来使用 |
Spring Cloud Stream | 数据流操作组件 | |
Spring Cloud Task | 任务调度和管理组件 | 基于Spring Task |
最近几年,很多人都在为微服务架构贡献力量,分享了他们在微服务架构中针对不同的应用场景出现的各种问题的各种解决方案和开源框架,比如:
在服务治理方面,有阿里巴巴开源的Dubbo和当当网在Dubbo基础上扩展的Dubbox,还有Netflix的Eureka,Apache的Consul等。
在分布式配置管理方面,有百度的Disconf,淘宝的Diamond等
。。。。。。
但是Spring Cloud不像上面提到的这些框架一样只解决微服务中的某一个问题,而是一个解决微服务架构实施的综合性解决框架。
Spring Cloud也许对于很多已经实施微服务并自成体系的团队不具备足够的吸引力,但是对于还未实施微服务或是未成体系的团队,将是一个非常有吸引力的框架选择。
参考资料:
1.《Spring Cloud与Docker微服务架构实战》 周立 著
2.《Spring Cloud微服务实战》 翟永超 著