Spring Cloud Alibaba-01-微服务介绍

这篇具有很好参考价值的文章主要介绍了Spring Cloud Alibaba-01-微服务介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Lison <dreamlison@163.com>, v1.0.0, 2023.05.07

Spring Cloud Alibaba-01-微服务介绍

微服务简介

架构的演变

随着互联网的发展,网站应用的规模也不断的扩大,进而导致系统架构也在不断的进行变化,从互联网早起到现在,系统架构大体经历了下面几个过程:

单体应用架构:
把所有功能都集中在一个应用中,统一部署,开发成本、部署成本和维护成本低,我们会把它们做成一个web项目,然后部署到一台tomcat服务器上。
Spring Cloud Alibaba-01-微服务介绍,# Spring Cloud Alibaba,架构,云原生,微服务

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

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

Spring Cloud Alibaba-01-微服务介绍,# Spring Cloud Alibaba,架构,云原生,微服务

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

分布式架构

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

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

SOA架构

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

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

微服务架构

微服务架构在某种程度上面架构SOA继续发展的下一步,它更加强调服务的“彻底拆分”,目的就是提高效率,微服务架构中,每个服务必须独立部署同时互不影响,微服务架构更加轻巧,轻量级。
Spring Cloud Alibaba-01-微服务介绍,# Spring Cloud Alibaba,架构,云原生,微服务

  • 优点:服务原子化拆分,独立打包、部署和升级,保证每个微服务清晰的任务划分,利于扩展
  • 缺点:分布式系统开发的技术成本高(容错、分布式事务等),复杂性更高,每个微服务进行分布式独立部署,当进行模块调用的时候,分布式将会变得更加麻烦

微服务架构与SOA架构的不同

  1. 微服务架构比SOA架构会更加的精细,让专业的人去做专业的。
  2. 目的是提高效率每个服务之间互不影响,微服务架构中,每个服务需要独立部署
  3. SOA架构中可能数据库存储会发生共享,微服务强调每个服务都是单独数据库,保证每个服务之间互不影响。
  4. 微服务项目架构比SOA架构更加适合与互联网公司迅捷开发、快速迭代版本,因为粒度非常精细。

微服务架构的常见问题

一旦采用微服务系统架构,就势必会遇到这样几个问题:

这么多小服务,如何管理他们?(服务治理 注册中心[服务注册 发现 剔除])
这么多小服务,他们之间如何通讯?(restful rpc)
这么多小服务,客户端怎么访问他们?(网关)
这么多小服务,一旦出现问题了,应该如何自处理?(容错)
这么多小服务,一旦出现问题了,应该如何排错? (链路追踪)
对于上面的问题,是任何一个微服务设计者都不能绕过去的,因此大部分的微服务产品都针对每一个问题提供了相应的组件来解决它们。
Spring Cloud Alibaba-01-微服务介绍,# Spring Cloud Alibaba,架构,云原生,微服务

微服务架构的常见概念

服务治理

服务治理就是进行服务的自动化管理,其核心是服务的自动注册与发现。

服务注册:服务实例将自身服务信息注册到注册中心。

服务发现:服务实例通过注册中心,获取到注册到其中的服务实例的信息,通过这些信息去请求它们提供的服务。

服务剔除:服务注册中心将出问题的服务自动剔除到可用列表之外,使其不会被调用到。
Spring Cloud Alibaba-01-微服务介绍,# Spring Cloud Alibaba,架构,云原生,微服务

服务调用

在微服务架构中,通常存在多个服务之间的远程调用的需求。目前主流的远程调用技术有基于
HTTP的RESTful接口以及基于TCP的RPC协议。

  • REST(Representational State Transfer)
    这是一种HTTP调用的格式,更标准,更通用,无论哪种语言都支持http协议

  • RPC(Remote Promote Call)
    一种进程间通信方式。允许像调用本地服务一样调用远程服务。RPC框架的主要目标就是让远程服 务调用更简单、透明。RPC框架负责屏蔽底层的传输方式、序列化方式和通信细节。开发人员在使 用的时候只需要了解谁在什么位置提供了什么样的远程服务接口即可,并不需要关心底层通信细节和调用过程。
    区别与联系

比较项 RESTful RPC
通讯协议 HTTP 一般使用TCP
性能 略低 较高
灵活度
应用 微服务架构 SOA架构
服务网关

随着微服务的不断增多,不同的微服务一般会有不同的网络地址,而外部客户端可能需要调用多个服务的接口才能完成一个业务需求,如果让客户端直接与各个微服务通信可能出现:

  • 客户端需要调用不同的url地址,增加难度
  • 在一定的场景下,存在跨域请求的问题
  • 每个微服务都需要进行单独的身份认证针

对这些问题,API网关顺势而生。

API网关直面意思是将所有API调用统一接入到API网关层,由网关层统一接入和输出。一个网关的 基本功能有:统一接入、安全防护、协议适配、流量管控、长短链接支持、容错能力。有了网关之后, 各个API服务提供团队可以专注于自己的的业务逻辑处理,而API网关更专注于安全、流量、路由等问 题。
Spring Cloud Alibaba-01-微服务介绍,# Spring Cloud Alibaba,架构,云原生,微服务

服务容错

在微服务当中,一个请求经常会涉及到调用几个服务,如果其中某个服务不可用,没有做服务容错话,极有可能会造成一连串的服务不可用,这就是雪崩效应.

我们没法预防雪崩效应的发生,只能尽可能去做好容错。服务容错的三个核心思想是:

  • 不被外界环境影响
  • 不被上游请求压垮
  • 不被下游响应拖垮

Spring Cloud Alibaba-01-微服务介绍,# Spring Cloud Alibaba,架构,云原生,微服务

链路追踪

随着微服务架构的流行,服务按照不同的维度进行拆分,一次请求往往需要涉及到多个服务。互联网应用构建在不同的软件模块集上,这些软件模块,有可能是由不同的团队开发、可能使用不同的编程语言来实现、有可能布在了几千台服务器,横跨多个不同的数据中心。因此,就需要对一次请求涉及的多个服务链路进行日志记录,性能监控即链路追踪

微服务架构的常见解决方案

ServiceComb

官方网址:https://servicecomb.apache.org/cn/
Spring Cloud Alibaba-01-微服务介绍,# Spring Cloud Alibaba,架构,云原生,微服务

Apache ServiceComb,前身是华为云的微服务引擎 CSE (Cloud Service Engine) 云服务,是全球首个Apache 微服务顶级项目。它提供了一站式的微服务开源解决方案,致力于帮助企业、用户和开发 者将企业应用轻松微服务化上云,并实现对微服务应用的高效运维管理。

SpringCloud

官方网址:https://spring.io/projects/spring-cloud/

Spring Cloud Alibaba-01-微服务介绍,# Spring Cloud Alibaba,架构,云原生,微服务

Spring Cloud是一系列框架的集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 Spring Boot的开发风格做到一键启动和部署。

Spring Cloud并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包

SpringCloud Alibaba

官方网址: https://spring.io/projects/spring-cloud-alibaba
Spring Cloud Alibaba-01-微服务介绍,# Spring Cloud Alibaba,架构,云原生,微服务

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

Spring Cloud Alibaba 主要功能与组件

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

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

主要功能

  • 服务限流降级 :默认支持 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] : 覆盖全球的短信服务,友好、高效、智能的互联化通讯能力,帮助企业迅速搭建客户触达通道。文章来源地址https://www.toymoban.com/news/detail-835183.html

到了这里,关于Spring Cloud Alibaba-01-微服务介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring Cloud Alibaba全家桶(六)——微服务组件Sentinel介绍与使用

    本文小新为大家带来 微服务组件Sentinel介绍与使用 相关知识,具体内容包括 分布式系统存在的问题 , 分布式系统问题的解决方案 , Sentinel介绍 , Sentinel快速开始 (包括: API实现Sentinel资源保护 , @SentinelResource注解实现资源保护 ), Sentinel控制台 , Spring Cloud Alibaba整合

    2024年01月17日
    浏览(57)
  • 云原生微服务实战 Spring Cloud Alibaba 之 Nacos

    第一章 Java线程池技术应用 第二章 CountDownLatch和Semaphone的应用 第三章 Spring Cloud 简介 第四章 Spring Cloud Netflix 之 Eureka 第五章 Spring Cloud Netflix 之 Ribbon 第六章 Spring Cloud 之 OpenFeign 第七章 Spring Cloud 之 GateWay 第八章 Spring Cloud Netflix 之 Hystrix 第九章 代码管理gitlab 使用 第十章 Spr

    2024年02月08日
    浏览(55)
  • 【云原生】Spring Cloud Alibaba 之 Feign 远程调用 实战

    在分布式领域中,一个系统由很多服务组成,不同的服务由各自的进程单独负责。因此,远程调用在分布式通信中尤为重要。 远程调用可分如下两类: 本地过程调用(Local Procedure Call,LPC) ,是指同一台机器上运行的不同进程之间的互相通信,即在多进程操作系统中,运行

    2023年04月09日
    浏览(48)
  • Spring Cloud Alibaba整合RocketMQ架构原理分析

    关于RocketMQ的原理,本文就不做详细分析了,这里就重点关注Spring Cloud Alibaba是如何整合RocketrMQ的。 RocketMQ提供了RocketMQ Client SDK,开发者可以直接依赖这个SDK,就可以完成消息的生产和消费。 1.生产消息 RocketMQ Client SDK提供了生产消息的API接口DefaultMQProducer,开发者可以直接使

    2024年01月22日
    浏览(53)
  • spring cloud alibaba组件介绍

    1.Spring Cloud Alibaba Nacos 是阿里巴巴集团自主研发的动态服务发现、配置管理和服务管理平台。它可以实现服务之间的注册和发现,提供配置管理、服务治理、流量控制等功能。 2.Spring Cloud Alibaba RocketMQ 是阿里巴巴集团自主研发的高性能、高可用、高扩展的分布式消息中间件。

    2024年02月15日
    浏览(54)
  • 【Spring Cloud Alibaba】第 2-4 节 - 系统架构演变

    目录 一、单体应用架构 二、垂直应用架构  三、分布式架构  四、SOA架构  五、微服务架构 前后端分离 单系统拆分 抽取公共代码为服务层 引入服务治理中心: 维护复杂的服务调用关系 微服务的原子化拆分: 最小为止

    2023年04月09日
    浏览(45)
  • 拾壹博客Spring Boot转换成Spring Cloud Alibaba架构

    改的地方实在太多了,所以过程记录不下去了,但是业务模块跟Boot是一毛一样的没有变化,直接发项目代码,包括了nacos中的配置文件在对应的模块,运行大概是没有问题。 成果: 链接已死,真的大无语。 等哪天把家里的k8s的minio整一下。先传到CSDN咯。 PS:其实过年前就已

    2024年02月06日
    浏览(45)
  • 04-Springbooot与Spring Cloud Alibaba搭建后端架构

      settings.xml,配好了阿里镜像 02-maven的安装配置_NikoWord的博客-CSDN博客 01-IDEA使用技巧_NikoWord的博客-CSDN博客 04-设置idea编码、编译_NikoWord的博客-CSDN博客

    2024年02月08日
    浏览(62)
  • Spring Cloud Alibaba 介绍与版本映射关系

    目录 前言 一、Spring Cloud Alibaba 是什么? 二、Spring Cloud Alibaba 版本依赖         Spring Cloud 本身并不是一个拿来即可用的框架,它是一套微服务规范,这套规范共有两代实现。 (子项目): ● 第一代实现: Spring Cloud Netflix, ● 第二代实现: Spring Cloud Alibaba。 2018 年 12 月1

    2024年02月03日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包