Spring Cloud Alibaba 介绍
Sping体系
- Spring 以 Bean(对象) 为中心,提供 IOC、AOP 等功能。
- Spring Boot 以 Application(应用) 为中心,提供自动配置、监控等功能。
- Spring Cloud 以 Service(服务) 为中心,提供服务的注册与发现、服务的调用与负载均衡等功能。
Sping Cloud介绍
官方介绍
Tools for building common patterns in distributed systems with Spring
译: 使用Spring在分布式系统中构建常见模式的工具
- 基于 Spring 构建分布式系统的工具集,简称“Spring 全家桶”。
功能点介绍
- 【配置中心】Distributed/versioned configuration
- 【注册中心】Service registration and discovery
- 【API 网关】Routing
- 【服务调用】Service-to-service calls
- 【负载均衡】Load balancing
- 【服务容错】Circuit Breakers
- 【分布式消息】Distributed messaging
还有以前的功能,从Spring Cloud
迁移到Spring Integration
中
- 【全局锁】Global locks
- 【领导选举与集群状态】Leadership election and cluster state
虽然 Spring Cloud 提供了非常强大的功能,但是它并不提供所有的实现,而是通过 Spring Cloud Common 子项目,定义了统一的抽象 API。如下图所示:
而后,不同厂商结合其自身的中间件,提供自己的 Spring Cloud 套件,例如说:
-
Netflix 结合自己的 Eureka、Ribbon、Hystrix 等开源中间件,实现了 spring-cloud-netflix
Spring Cloud Netflix 是目前国内使用最为流行的 Spring Cloud 套件。不过随着 Netflix 在开源的调整,逐步会慢慢没落。
-
Kubernetes 结合自己的 apiserver、configmap 等功能,实现了 spring-cloud-kubernetes
-
Alibaba 结合自己的 Nacos、Dubbo、Sentinel 等开源中间件,实现了 spring-cloud-alibaba
目测 Spring Cloud Alibaba 在国内会火?!
Spring Cloud Alibaba 套件
Spring Cloud Alibaba 套件,阿里开源组件、阿里云商业组件整合进 Spring Cloud 体系当中,同时对 Spring Cloud Gateway、OpenFeign、Ribbon 等等进行集成。整体如下图所示:
我们可以将 Spring Cloud Alibaba 套件中的阿里开源组件和阿里云商业组件整理成如下对照表:
主要功能如下:
-
服务注册与发现:适配 Spring Cloud 服务注册与发现标准,默认集成了 Ribbon 的支持。
-
分布式配置管理:支持分布式系统中的外部化配置,配置更改时自动刷新。
-
服务限流降级:默认支持 WebServlet、WebFlux, OpenFeign、RestTemplate、Spring Cloud Gateway, Zuul, Dubbo 和 RocketMQ 限流降级功能的接入,可以在运行时通过控制台实时修改限流降级规则,还支持查看限流降级 Metrics 监控。
-
消息驱动能力:基于 Spring Cloud Stream 为微服务应用构建消息驱动能力。
-
分布式事务:使用
@GlobalTransactional
注解, 高效并且对业务零侵入地解决分布式事务问题。商业化独有功能如下:-
分布式任务调度:提供秒级、精准、高可靠、高可用的定时(基于 Cron 表达式)任务调度服务。同时提供分布式的任务执行模型,如网格任务。网格任务支持海量子任务均匀分配到所有 Worker(schedulerx-client)上执行。
曾经,阿里 SchedulerX 也是一个开源项目,现在已经木有消息了…嘿嘿,希望未来能够重启。
-
阿里云对象存储:阿里云提供的海量、安全、低成本、高可靠的云存储服务。支持在任何应用、任何时间、任何地点存储和访问任意类型的数据。
-
阿里云短信服务:覆盖全球的短信服务,友好、高效、智能的互联化通讯能力,帮助企业迅速搭建客户触达通道。
友情提示:艿艿还是比较推荐使用云片来发送短信,客服妹子基本是秒回,特别是审核短信模板的时候。
-
商业化独有功能如下:
-
分布式任务调度:提供秒级、精准、高可靠、高可用的定时(基于 Cron 表达式)任务调度服务。同时提供分布式的任务执行模型,如网格任务。网格任务支持海量子任务均匀分配到所有 Worker(schedulerx-client)上执行。
曾经,阿里 SchedulerX 也是一个开源项目,现在已经木有消息了…嘿嘿,希望未来能够重启。
-
阿里云对象存储:阿里云提供的海量、安全、低成本、高可靠的云存储服务。支持在任何应用、任何时间、任何地点存储和访问任意类型的数据。
-
阿里云短信服务:覆盖全球的短信服务,友好、高效、智能的互联化通讯能力,帮助企业迅速搭建客户触达通道。