目录
Spring Cloud Alibaba专栏目录(点击进入…)
Spring Cloud Alibaba基本介绍
Spring Cloud Alibaba基本介绍
为什么使用Spring Cloud Alibaba?
已经有了Spring Cloud这个微服务的框架,为什么又要使用Spring Cloud Alibaba?
最重要的原因在于Spring Cloud中的几乎所有的组件都使用Netflix公司的产品,然后在其基础上做了一层封装。然而Netflix的服务发现组件Eureka已经停止更新,公司在使用的时候就发现过其一个细小的Bug;而其他的众多组件预计会在即2020停止维护。所以急需其他的一些替代产品,也就是Spring Cloud Alibaba,目前正处于蓬勃发展的态式。
Spring Cloud Alibaba介绍
Spring Cloud Alibaba同Spring Cloud一样,也是一套微服务解决方案,包含开发分布式应用微服务的必需组件,方便开发者通过Spring Cloud编程模型轻松使用这些组件来开发分布式应用服务。
依托Spring Cloud Alibaba,只需要添加一些注解和少量配置,就可以将Spring Cloud应用接入阿里微服务解决方案,通过阿里中间件来迅速搭建分布式应用系统
Spring Cloud Alibaba优势
Spring Cloud Alibaba虽然诞生时间不久(2018.10.31),但是背靠大树好乘凉,赖于阿里巴巴强大的技术影响力,已经成为微服务解决方案的重要选择之一
1.阿里巴巴强大的技术输出能力
阿里巴巴无疑是国内开源技术领域的最有影响力的公司之一,已经有Dubbo、Druid、FastJson等成功的开源组件,再加上阿里不遗余力的推广,社区发展也非常快
2.集成Dubbo,利用Dubbo在微服务领域的超高人气
Dubbo是国内应用最广的分布式服务框架之一,基于Dubbo改造的Dubbox等也有很多公司在使用,Spring Cloud Alibaba对Dubbo做了比较好的集成,可以吸引不少使用Dubbo的开发者
3.云原生趋势,集成阿里云商业化组件
云原生(Cloud Native)是今年技术领域特别热门的一个词,云原生是一种专门针对云上应用而设计的方法,用于构建和部署应用,以充分发挥云计算的优势。
Spring Cloud Alibaba集成了阿里云的商业化组件,可以说天然支持云原生特性
Spring Cloud Alibaba主要功能
(1)服务限流降级
默认支持Servlet、Feign、RestTemplate、Dubbo和RocketMQ限流降级功能的接入,可以在运行时通过控制台实时修改限流降级规则,还支持查看限流降级Metrics监控
(2)服务注册与发现
适配Spring Cloud服务注册与发现标准,默认集成了Ribbon的支持
(3)分布式配置管理
支持分布式系统中的外部化配置,配置更改时自动刷新
(4)RPC服务
扩展Spring Cloud客户端RestTemplate和OpenFeign,支持调用Dubbo RPC服务
(5)消息驱动能力
基于Spring Cloud Stream为微服务应用构建消息驱动能力
(6)分布式事务
使用@GlobalTransactional注解,高效并且对业务零侵入地解决分布式事务问题
(7)阿里云对象存储
阿里云提供的海量、安全、低成本、高可靠的云存储服务。支持在任何应用、任何时间、任何地点存储和访问任意类型的数据
(8)分布式任务调度
提供秒级、精准、高可靠、高可用的定时(基于Cron表达式)任务调度服务
同时提供分布式的任务执行模型,如网格任务。网格任务支持海量子任务均匀分配到所有Worker(schedulerx-client)上执行
(9)阿里云短信服务
覆盖全球的短信服务,友好、高效、智能的互联化通讯能力,帮助企业迅速搭建客户触达通道
Spring Cloud Alibaba组件
Spring Cloud Alibaba致力于提供微服务开发的一站式解决方案。该项目包含开发分布式应用微服务的必需组件,方便开发者通过Spring Cloud编程模型轻松使用这些组件来开发分布式应用服务
作为Spring Cloud体系下的新实现,Spring Cloud Alibaba跟官方的组件或其它的第三方实现如Netflix、Consul、Zookeeper等对比,具备了更多的功能:
组件 | 描述 |
---|---|
Nacos | 一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台 |
Sentinel | 把流量作为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性 |
RocketMQ | 开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务 |
Dubbo | 高性能Java RPC框架 |
Seata | 阿里巴巴开源产品,一个易于使用的高性能微服务分布式事务解决方案 |
Arthas | 开源的Java动态追踪工具,基于字节码增强技术,功能非常强大 |
(1)注册中心:Nacos
Nacos是阿里巴巴研发的一个集注册中心与配置中心于一体的管理平台;更易于构建云原生应用的动态服务发现、配置管理和服务管理平台
Github地址:https://github.com/alibaba/nacos/releases
其中默认的登录名和密码是:nacos/nacos
(2)限流:Sentinel
面向分布式服务架构的轻量级流量控制产品,主要以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度来帮助您保护服务的稳定性
(3)RPC:Dubbo
Apache Dubbo是一款高性能Java RPC框架
(4)分布式消息系统:RocketMQ
基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务
(5)分布式事务:Seata
阿里巴巴开源产品,一个易于使用的高性能微服务分布式事务解决方案
(6)分布式配置:Alibaba Cloud ACM
在分布式架构环境中对应用配置进行集中管理和推送的应用配置中心产品
(7)对象存储服务:Alibaba Cloud OSS
阿里云对象存储服务(Object Storage Service,简称OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。可以在任何应用、任何时间、任何地点存储和访问任意类型的数据
(8)分布式任务调度:Alibaba Cloud SchedulerX
阿里中间件团队开发的一款分布式任务调度产品,提供秒级、精准、高可靠、高可用的定时(基于Cron表达式)任务调度服务
(9)短信服务:Alibaba Cloud SMS
覆盖全球的短信服务,友好、高效、智能的互联化通讯能力,帮助企业迅速搭建客户触达通道。
阿里商业化组件
(1)Alibaba Cloud ACM
一款在分布式架构环境中对应用配置进行集中管理和推送的应用配置中心产品
(2)Alibaba Cloud OSS
阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的云存储服务
(3)Alibaba Cloud SchedulerX
阿里中间件团队开发的一款分布式任务调度产品,提供秒级、精准的定时(基于 Cron 表达式)任务调度服务