系统架构演变

单体应用架构:

把所有功能都集中在一个应用中,统一部署,开发成本、部署成本和维护成本低

  • 优点:项目架构简单,适合用户量少的项目,开发成本低,项目部署在一个节点上,维护方便。
  • 缺点:功能集中在一个工程中,对于大型项目比一开发和维护,项目模块紧耦合,单点容错率低,无法对不同的模块功能进行针对性的优化和水平拓展

垂直应用架构:

所谓垂直应用架构,其实就是把之前的单体应用拆分成多个应用,以提升效率,比如电商系统可以拆分成:电商系统、后台系统、CMS系统

  • 优点:项目拆分实现了流量分担,解决了并发问题,而且可以针对不同模块进行优化和水平拓展,同时不同的系统之间不会互相影响,提高容错率
  • 缺点:系统之间互相存在,无法进行相互调用,系统之间互相独立,会造成一部分功能的冗余

分布式架构:

随着业务的增加,在垂直应用架构中冗余的业务代码越来越多,就需要将冗余的部分抽取出来,统一做成业务层单独处理,变成一个单独的服务,控制层调用不同的业务层服务就能完成不同的业务功能,具体表现就是一个项目拆分成表现层和服务层两个部分,服务层中包含业务逻辑,表现层只需要处理和页面的交互,业务逻辑都是调用服务层的服务来实现,这就是分布式架构。

  • 优点:抽取公共的功能作为服务层,提高代码复用行。
  • 缺点:系统间耦合度变高,调用关系错综复杂,难以维护。

SOA架构:

分布式架构中的缺点就是调用复杂,而且当服务越来越多,或者当某一个服务压力过大需要水平拓展和负载均衡,对于资源调度和治理就需要用到治理中心SOA(Service Oriented Architecture)为核心来解决,同时治理中心还可以帮助我们解决服务之间协议不同的问题。

  • 优点:使用治理中心(ESB\dubbo)解决了服务见调用关系的自动调节
  • 缺点:服务间会有依赖关系,一旦某个环节出错会影响较大(服务雪崩),服务关系复杂,运维、测试部署困难。

Spring Cloud Alibaba

Spring Cloud Alibaba把Spring Cloud Netflix整合

主要功能:

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

组件

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

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

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

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

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

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

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

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

一、微服务 和 Spring Cloud Alibaba相关推荐

  1. 1:微服务和Spring Cloud Alibaba介绍

    Spring Cloud Alibaba系列目录 提示:这里是第一章:微服务和Spring Cloud Alibaba介绍 微服务和Spring Cloud Alibaba介绍 Alibaba微服务组 ...

  2. 一、微服务和Spring Cloud Alibaba介绍

    微服务和Spring Cloud Alibaba介绍 1.微服务介绍 1.1 系统架构演变 随着互联网的发展,网站应用的规模也在不断的扩大,进而导致系统架构也在不断的进行变化. 从互联网早起到现在,系 ...

  3. 微服务(Microservice)Spring Cloud Alibaba

    Spring Boot 是 Pivotal 团队在 Spring 的基础上提供的一套全新的开源框架,其目的是为了简化 Spring 应用的搭建和开发过程.Spring Boot 去除了大量的 XML ...

  4. 微服务等于Spring Cloud?了解微服务架构和框架

    作者:TIM XU 来源:https://xiaoxubeii.github.io/articles/microservices-architecture-introduction/ 微服务初探 什么 ...

  5. springcloud 微服务鉴权_Java微服务框架spring cloud

    Spring Cloud是什么 Spring Boot 让我们从繁琐的配置文件中解脱了出来,而 Spring Cloud,它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发, ...

  6. 微服务等于Spring Cloud?一文告诉你微服务到底是什么

    作者:TIM XU 原文:https://xiaoxubeii.github.io/articles/microservices-architecture-introduction/ 1 微服务初探 ...

  7. spring cloud gateway 网关_微服务网关Spring Cloud Gateway全搞定

    一.微服务网关Spring Cloud Gateway 1.1 导引 文中内容包含:微服务网关限流10万QPS.跨域.过滤器.令牌桶算法. 在构建微服务系统中,必不可少的技术就是网关了,从早期的Zuu ...

  8. 微服务等于 Spring Cloud?了解微服务架构和框架

    点击上方"芋道源码",选择"设为星标" 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 8:55 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | J ...

  9. 微服务与Spring Cloud简介

    目录 分布式 集群 微服务简介 什么是集群 什么是分布式 集群/分布式 分布式/微服务/SOA 微服务 微服务优点及缺点 微服务技术栈 CAP原理 对CAP原理的一些常见的理解误区 分区容忍性P的例子 ...

最新文章

  1. Go 知识点(11) — goroutine 泄露、设置子协程退出条件
  2. linux rpm mysql 路径_linux基础-linux 下 安装 rpm 格式 的 mysql
  3. 经典SQL短小代码收集汇总
  4. SpringBoot中定时任务与异步定时任务的实现
  5. 一种利用ADO连接池操作MySQL的解决方案(VC++)
  6. 基于Token进行身份验证
  7. java代码快速_java代码编写快捷途经
  8. 三次多项式曲线php,多项式计算的效率测试,多项式计算效率_PHP教程
  9. Vue笔记大融合总结
  10. Linux系统升级维护费,Antergos Linux 宣布停止维护
  11. Makefile:.d依赖文件
  12. vim command line quick edit
  13. 【JavaWeb】如何优雅的实现第三方开放api接口签名(有状态/无状态)
  14. 两款C#开源单文件串口调试工具的源码库
  15. 面试时,可以问面试官问题总结
  16. 【项目记录】Linux日志审计系统
  17. 考研英语(七)——状语和状语从句
  18. Python Opencv 实现鼠标事件(包含一个练习)——事件触发讲解·以及鼠标回调函数的实现
  19. 电磁波以及常见电磁波波谱
  20. 用java代码实现查询数据库

热门文章

  1. SAP 银企直联 批量获取银行账户数据
  2. go gin Next()方法
  3. 杂项 《Scala 开发教程》实验报告
  4. 原来这些名言都有后半句!被坑了太多年!
  5. 马洪杰:标准化与金融科技创新互动发展实践
  6. 究竟什么占用了你的显存容量
  7. RecyclerView中notifyDataSetChanged刷新总结
  8. 2.3.6nbsp;游击战的基本原则
  9. 【轻笔记·1】关于磁盘压缩卷如何查看压缩进度
  10. 应该是尿酸高痛风导致脚痛