spring cloud简介
微服务是一种架构,对于一个使用微服务架构的系统来说面临了很多问题,市面上针对这些问题有很多组件。换句话说就是在一个微服务架构的系统中,需要引入很多组件来分别解决这些问题。如下所示微服务中的问题和相应的技术,这里仅列出了一部分,试想下如果是让开发者自己来配置组合这些技术,那绝对是一件痛苦的事情。
面临的问题 | 相应的技术 |
---|---|
服务基础开发 | spring mvc,spring,spring boot |
服务注册与发现 | Eureka,ZooKeeper,nacos,consul |
服务调用 | dubbo,ribbon,feign |
负载均衡 | ribbon |
服务熔断 | Hystrix,Sentinel |
API网关 | zuul,Spring Cloud Gateway |
分布式事务 | seata |
spring cloud的出现有效的解决了这个问题。spring cloud并不像spring,mybatis那样是单一的框架,spring cloud将微服务架构系统中需要使用的一些组件做了一个整合,是一套微服务解决方案,开发者只需在spring cloud中进行简单的配置就可以使用特定的组件了。spring cloud是基于spring boot的,所以需要先把spring boot掌握之后再来学习spring cloud。下面两张截图取自spring官网,图中分别展示了微服务系统中的问题。
spring cloud和spring cloud alibaba
spring cloud中集成了很多第三方的组件,现在这里面有的第三方组件宣布闭源不再更新了,因此很多开发者将目光转到了Spring Cloud Alibaba上。依托 Spring Cloud Alibaba,开发者只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里微服务解决方案,从而迅速搭建分布式应用系统。阿里微服务开源组件:
- Sentinel:把流量作为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。
- Nacos:服务注册发现、配置管理和服务管理平台。
- RocketMQ:开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务。
- Dubbo:高性能 Java RPC 框架。
- Seata:分布式事务解决方案。
- Alibaba Cloud ACM:一款在分布式架构环境中对应用配置进行集中管理和推送的应用配置中心产品。
- Alibaba Cloud OSS: 阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。您可以在任何应用、任何时间、任何地点存储和访问任意类型的数据。
- Alibaba Cloud SchedulerX: 阿里中间件团队开发的一款分布式任务调度产品,提供秒级、精准、高可靠、高可用的定时(基于 Cron 表达式)任务调度服务。
- Alibaba Cloud SMS: 覆盖全球的短信服务,友好、高效、智能的互联化通讯能力,帮助企业迅速搭建客户触达通道。
版本对应关系
技术变化日新月异,在使用的时候务必注意各个版本的对应关系,倘若版本不对应,有可能会出现一些意外的问题。这里使用的下面版本:
-
spring boot:2.4.2
-
spring cloud:2020.0.1
-
spring cloud alibaba:2021.1
以上版本的选择是根据官方文档得出的:
spring cloud 相关文档
spring cloud alibaba github:https://github.com/alibaba/spring-cloud-alibaba
spring cloud alibaba文档:https://spring-cloud-alibaba-group.github.io/github-pages/hoxton/en-us/index.html