SpringCloud Alibaba + Spring Boot + mybatis +数据中台+多租户saas+前后端分离分布式微服务高并发架构 -Spring Cloud Alibaba初识

 1.Spring Cloud Alibaba简介
Spring Cloud Alibaba 是阿里巴巴提供的微服务开发一站式解决方案,是阿里巴巴开源中间件与 Spring Cloud 体系的融合。

马老师左手双十一,右手阿里开源组件,不仅占据了程序员的购物车,还要攻占大家的开发工具。

架构技术选型

  1. 核心框架 Spring Boot
  2. SOA Spring Cloud
  3. 安全框架 Spring Security Oauth2
  4. 注册中心/配置中心 Nacos 集群部署
  5. 网关 Spring Cloud Gateway 部署多套,使用nginx负载
  6. 链路监控 Skywalking
  7. 流量控制、熔断降级 Sentinel
  8. 数据库 Mysql
  9. 分布式事务 Seata
  10. 定时调度 xxl-job
  11. 缓存 Redis
  12. MQ RocketMq
  13. 持久框架 Mybatis Plus
  14. 搜索引擎 ElasticSearch
​@源码地址来源:http://minglisoft.cn/hhcloud

1.1.先说说 Spring Cloud
提起微服务,不得不提Spring Cloud全家桶系列,SpringCloud 是若干个框架的集合,包括spring-cloud-eureka、spring-cloud-zuul、 spring-cloud-config、spring-cloud-bus 等近 20 个子项目,提供了服务治理、服务网关、智能路由、负载均衡、断路器、监控跟踪、分布式消息队列、配置管理等领域的解决方案。

Spring Cloud 通过 Spring Boot 风格的封装,屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、容易部署的分布式系统开发工具包。

一般来说,Spring Cloud 包含以下组件,主要以 Netflix 开源为主:


1.2.Spring Cloud Alibaba
最近两年,阿里又推出了新一代微服务组件框架Spring Cloud Alibaba。至于为什么会出现呢,其中最重要的原因在于Spring Cloud中的几乎所有的组件都使用Netflix公司的产品,然后在其基础上做了一层封装,并且Netflix的很多组件如Eureka等已经停止更新。

Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。

依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里微服务解决方案,通过阿里中间件来迅速搭建分布式应用系统。

Spring Cloud Alibaba GitHub地址

Spring Cloud Alibaba官方文档

为 Spring Cloud Alibaba 贡献代码请参考 如何贡献 。

2.主要功能
服务限流降级:默认支持 WebServlet、WebFlux, OpenFeign、RestTemplate、Spring Cloud Gateway, Zuul, Dubbo 和 RocketMQ 限流降级功能的接入,可以在运行时通过控制台实时修改限流降级规则,还支持查看限流降级 Metrics 监控。
服务注册与发现:适配 Spring Cloud 服务注册与发现标准,默认集成了 Ribbon 的支持。
分布式配置管理:支持分布式系统中的外部化配置,配置更改时自动刷新。
消息驱动能力:基于 Spring Cloud Stream 为微服务应用构建消息驱动能力。
分布式事务:使用 @GlobalTransactional 注解, 高效并且对业务零侵入地解决分布式事务问题。
阿里云对象存储:阿里云提供的海量、安全、低成本、高可靠的云存储服务。支持在任何应用、任何时间、任何地点存储和访问任意类型的数据。
分布式任务调度:提供秒级、精准、高可靠、高可用的定时(基于 Cron 表达式)任务调度服务。同时提供分布式的任务执行模型,如网格任务。网格任务支持海量子任务均匀分配到所有 Worker(schedulerx-client)上执行。
阿里云短信服务:覆盖全球的短信服务,友好、高效、智能的互联化通讯能力,帮助企业迅速搭建客户触达通道。

3.主要组件
下图 (图片来源于网络) 为Spring Cloud Alibaba 系列组件,其中包含了阿里开源组件,阿里云商业化组件,以及集成Spring Cloud 组件:

Sentinel:把流量作为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。

Nacos:一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。

RocketMQ:一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务。

Dubbo:Apache Dubbo™ 是一款高性能 Java RPC 框架。

Seata:阿里巴巴开源产品,一个易于使用的高性能微服务分布式事务解决方案。

Alibaba Cloud OSS: 阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。您可以在任何应用、任何时间、任何地点存储和访问任意类型的数据。

Alibaba Cloud SchedulerX: 阿里中间件团队开发的一款分布式任务调度产品,提供秒级、精准、高可靠、高可用的定时(基于 Cron 表达式)任务调度服务。

Alibaba Cloud SMS: 覆盖全球的短信服务,友好、高效、智能的互联化通讯能力,帮助企业迅速搭建客户触达通道。

4.如何构建
master 分支对应的是 Spring Cloud Greenwich,最低支持 JDK 1.8。
finchley 分支对应的是 Spring Cloud Finchley,最低支持 JDK 1.8。
1.x 分支对应的是 Spring Cloud Edgware,最低支持 JDK 1.7。

Spring Cloud 使用 Maven 来构建,最快的使用方式是将本项目 clone 到本地,然后执行以下命令:

./mvnw install


执行完毕后,项目将被安装到本地 Maven 仓库。

5.如何使用
如果需要使用已发布的版本,在 dependencyManagement 中添加如下配置。

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>2.2.3.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>


然后在 dependencies 中添加自己所需使用的依赖即可使用。

6.版本管理规范
项目的版本号格式为 x.x.x 的形式,其中 x 的数值类型为数字,从 0 开始取值,且不限于 0~9 这个范围。项目处于孵化器阶段时,第一位版本号固定使用 0,即版本号为 0.x.x 的格式。

由于 Spring Boot 1 和 Spring Boot 2 在 Actuator 模块的接口和注解有很大的变更,且 spring-cloud-commons 从 1.x.x 版本升级到 2.0.0 版本也有较大的变更,因此我们采取跟 SpringBoot 版本号一致的版本:

1.5.x 版本适用于 Spring Boot 1.5.x
2.0.x 版本适用于 Spring Boot 2.0.x
2.1.x 版本适用于 Spring Boot 2.1.x
2.2.x 版本适用于 Spring Boot 2.2.x



7.参考文档
Spring Cloud Alibaba 2.1.0
https://spring.io/projects/spring-cloud-alibaba#overview

Reference Doc.
https://spring-cloud-alibaba-group.github.io/github-pages/greenwich/spring-cloud-alibaba.html

文档
https://github.com/alibaba/spring-cloud-alibaba

中文文档
https://github.com/alibaba/spring-cloud-alibaba/blob/master/README-zh.md

Nacos
https://nacos.io/zh-cn/docs/quick-start.html
https://github.com/alibaba/nacos/releases/tag/1.2.1

Sentinel
https://github.com/alibaba/Sentinel

8.小结
Spring 通常指 Spring IOC。
Spring Framework 包含了 Spring IOC,同时包含了 Spring AOP,并实现与其它 J2EE 框架的整合。
Spring Boot 是对 Spring Framework 的补充,让框架的集成变得更简单,致力于快速开发 独立的 Spring 应用。
Spring Cloud 是基于 Spring Boot 设计的一套微服务规范,并增强了应用上下文。
Spring Cloud Alibaba 采用阿里中间件作为原料,实现了 Spring Cloud 的微服务规范。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是 Spring Cloud Alibaba + Spring Boot + Nacos + Mybatis Plus + MySQL 项目搭建步骤: 1. 创建 Spring Boot 项目 使用 Spring Initializr 创建一个新的 Spring Boot 项目,选择需要的依赖,例如 Web、MySQL、Mybatis Plus 等。 2. 集成 Spring Cloud Alibaba 在 pom.xml 中添加 Spring Cloud Alibaba 的依赖: ``` <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>2.2.1.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> ``` 3. 集成 Nacos 在 pom.xml 中添加 Nacos 的依赖: ``` <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> ``` 在 application.properties 中添加 Nacos 的配置: ``` spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848 ``` 4. 集成 Mybatis Plus 在 pom.xml 中添加 Mybatis Plus 的依赖: ``` <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.0</version> </dependency> ``` 5. 集成 MySQL 在 pom.xml 中添加 MySQL 的依赖: ``` <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> ``` 在 application.properties 中添加 MySQL 的配置: ``` spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8 spring.datasource.username=root spring.datasource.password=root spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver ``` 6. 编写代码 在 src/main/java 目录下创建包和类,编写业务逻辑代码和数据访问代码。 7. 启动项目 运行项目,访问 http://localhost:8080 可以看到项目的首页。 以上是 Spring Cloud Alibaba + Spring Boot + Nacos + Mybatis Plus + MySQL 项目搭建步骤,希望能对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值