【SpringCloud Alibaba】(一)微服务介绍

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

此专栏内容皆来自于【冰河】的《SpringCloud Alibaba 实战》文档。

Spring Cloud Alibaba Reference Documentation

1. 专栏介绍

我们先来看看《SpringCloud Alibaba实战》专栏的整体结构吧,先上图

【SpringCloud Alibaba】(一)微服务介绍,SpringCloud Alibaba实战,spring cloud,微服务,spring
从上图,大家可以看到,专栏从整体上分为十个大的篇章,分别为 专栏设计、微服务介绍、微服务环境搭建、服务治理、服务容错、服务网关、链路追踪、消息服务、服务配置、分布式事务

每个大的篇章下面会按照实际需要划分为一个或者多个章节。并且整个专栏会以一个典型电商系统的用户、商品、订单 模块为例,贯穿整个专栏,每个章节都会以 SpringCloud Alibaba 提供的组件进行实现。

让大家在学习《SpringCloud Alibaba实战专栏》的时候,真正能够深入理解以微服务开发实际项目,并且能够实战开发项目,进而能够灵活运用到公司的实际项目中。

只是停留在理论基础是远远不够的,学到的知识能够拿来实战,解决实际问题才是最重要的

在开发电商系统的过程中,每个阶段会产生不同的需求,而我们在每个阶段针对不同的需求,会使用 SpringCloud-Alibaba 中的对应组件来实现。
例如:

  • 涉及到服务治理和服务配置的需求时,我们会使用 Nacos 实现。
  • 涉及到负载均衡的需求时,我们会使用 Ribbon 实现。
  • 涉及到远程服务调用的需求时,我们会使用 Fegin 实现。
  • 涉及到服务容错的需求时,我们会使用 Sentinel 实现。
  • 涉及到服务网关的需求时,由于目前 SpringCloud Alibaba 中并未提供自己的网关,所以,我们使
  • 用 SpringCloud 中的 Gateway 实现。
  • 涉及到链路追踪的需求时,我们会使用 Sleuth + ZipKin 实现。
  • 涉及到消息服务的需求时,我们会使用 RocketMQ 实现。
  • 涉及到分布式事务的需求时,我们会使用 Seata 实现。
  • 涉及到数据存储的需求时,我们会 MySQL+ElasticSearch 实现

2. 微服务介绍

2.1 微服务化后的问题

一个系统,尤其是大型系统使用微服务架构模式进行搭建和开发时,虽然总体上能够提高研发效率、能够支持更高的并发,也能够提高系统整体的性能和可靠性,以及可维护性。但是在实现细节上还是存在着不少的问题。

  1. 将系统拆分成各个微服务后,如果管理和感知那么多的服务呢?
  2. 将系统拆分成各个微服务后,各个微服务之间如何通信?
  3. 将系统拆分成各个微服务后,一旦系统出现问题,如何快速定位问题呢?
  4. 将系统拆分成各个微服务后,如何最大程度的保证系统的可用性?
  5. 将系统拆分成各个微服务后,客户端如何访问那么多的微服务?

大家可以先思考下这些问题,在下一篇文章中,会为大家揭晓这些问题的答案。

2.2 微服务常见概念

2.2.1 服务调用

将一个系统拆分成各个微服务后,各个微服务之间协同工作才能对外提供完整的服务,这就涉及到各个
微服务之间的调用问题。目前各个微服务之间一般会采用Restful接口或者RPC协议的方式进行调用。

(1)Restful 接口

Restful 接口一般是基于 HTTP 协议实现的,这种协议使用上比较广泛,几乎所有的编程语言都支持HTTP协议。

(2)RPC 协议

RPC 是一种远程过程调用,能够做到像调用本地服务一样调用远程服务。RPC 框架在底层屏蔽了数据的传输方式,序列化方式和交互的细节信息,让使用 RPC 框架开发微服务的人员觉得更加简单,实现起来更加容易

2.2.2 服务治理

服务治理,说白了就是如何自动化的管理各个微服务,核心的功能就是服务的注册、发现和剔除。

(1)服务注册

各个微服务实例在启动时,能够将自身提供的服务注册到某个注册中心。

(2)服务发现

当某个微服务将自身提供的服务注册到注册中心时,其他微服务实例能够通过注册中心感知到这个微服务提供的服务,并且能够获取到这个微服务的实例信息,通过这个微服务的实例信息就能够调用这个微服务的方法,来进行相应的读写操作。

(3)服务剔除

如果某个微服务实例出现故障,或者连接一直超时,则注册中心会认为当前微服务实例不可用,就会将这个微服务实例剔除出注册中心,使其不再被其他微服务感知到和调用到。

2.2.3 注册中心

提供微服务注册、发现和剔除功能的服务组件

2.2.4 服务网关

服务网关是所有微服务的入口,客户端在访问各个微服务时,首先需要经过服务网关。接入服务网关后,会将所有API的调用统一接入到API的网关层,由网关层统一接收参数进行路由转发,将返回的结果数据返回给客户端。

通常情况下,一个服务网关最基本的功能包括:统一接入、限流、熔断、降级、安全防护、协议适配、容错等等。主要专注的是对系统安全、流量和路由等的管理。这样,业务开发人员就可以专注于开发业务逻辑啦

2.2.5 服务限流

在高并发大流量场景下,经常会出现某个服务或者接口因为调用的流量过大而导致不可用的情况,由于某个服务或者接口的不可用,可能还会导致整个系统崩溃。此时,就会对系统采取限流的手段来进行防
护,当请求达到一定的频率或者速率时,对这些请求采取排队、等待、降级等策略,甚至是拒绝服务

2.2.6 服务熔断

如果某个服务出现故障不可用,或者调用超时,为了不让其他服务受到牵累而导致整个系统不可用,则断开与这个服务的连接,暂停对这个服务的调用。

2.2.7 服务降级

服务降级主要是从整个系统的负载情况进行考虑,如果某些服务的负载情况比较高,则为了预防某些功能出现负载过高而导致响应慢的问题,会在提供这些功能的方法内部暂时舍弃对一些非核心功能接口的调用,直接返回一个提前准备好的错误处理信息。服务降级是有损服务,但是能够保证整个系统的稳定性和可用性

2.2.8 服务容错

服务容错指的是微服务能够容纳一定错误情况的发生。从某种意义上说,服务限流、服务熔断和服务降级都是服务容错的措施。

2.2.9 链路追踪

当系统被拆分成各个微服务后,一次请求往往会涉及到多个服务之间的调用关系。如果系统出现问题,则会增加定位问题的难度。为了解决这个问题,就需要对一次请求涉及到的多个服务链路的日志进行追踪和记录,一方面可以记录调用的链路,另一方面还可以监控系统中各个调用环节的性能,这就是链路追踪。

3. SpringCloud Alibaba

SpringCloud Alibaba 是阿里开源的一套微服务解决方案,包含各种微服务组件,能够极大的方便开发人员构建微服务应用。

3.1 主要功能

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

除了上述所具有的功能外,针对企业级用户的场景,Spring Cloud Alibaba 配套的企业版微服务治理方案 微服务引擎 MSE 还提供了企业级微服务治理中心,包括全链路灰度、服务预热、无损上下线和离群实例摘除等更多更强大的治理能力,同时还提供了企业级 Nacos 注册配置中心,企业级云原生网关等多种产品及解决方案。

3.2 组件

  • 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-602451.html

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

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

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

相关文章

  • Java之SpringCloud Alibaba【七】【Spring Cloud微服务网关Gateway组件】

    Java之SpringCloud Alibaba【一】【Nacos一篇文章精通系列】 跳转 Java之SpringCloud Alibaba【二】【微服务调用组件Feign】 跳转 Java之SpringCloud Alibaba【三】【微服务Nacos-config配置中心】 跳转 Java之SpringCloud Alibaba【四】【微服务 Sentinel服务熔断】 跳转 Java之SpringCloud Alibaba【五】【微服务

    2024年02月06日
    浏览(42)
  • Spring Cloud Alibaba-01-微服务介绍

    Lison dreamlison@163.com , v1.0.0 , 2023.05.07 架构的演变 随着互联网的发展,网站应用的规模也不断的扩大,进而导致系统架构也在不断的进行变化,从互联网早起到现在,系统架构大体经历了下面几个过程: 单体应用架构: 把所有功能都集中在一个应用中,统一部署,开发成本、

    2024年02月22日
    浏览(34)
  • 微服务之Spring Cloud Alibaba Sentinel介绍与下载(详细方法)

    随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、流量路由、熔断降级、系统自适应过载保护、热点流量防护等多个维度保护服务的稳定性。 2012 年,Sentinel 诞生,主要功能为入口流量控制。 2013-2017 年,Sentinel 在阿里巴巴

    2024年02月11日
    浏览(37)
  • Spring Cloud Alibaba全家桶(六)——微服务组件Sentinel介绍与使用

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

    2024年01月17日
    浏览(35)
  • 云原生微服务治理经典套件之Spring Cloud Alibaba核心技术与实战案例

    送书第一期 《用户画像:平台构建与业务实践》 送书活动之抽奖工具的打造 《获取博客评论用户抽取幸运中奖者》 送书第二期 《Spring Cloud Alibaba核心技术与实战案例》 文章末尾有送书须知 ^ o ^,欢迎各位老板们! 云原生的微服务治理可以从以下几个方面进行: 服务注册与

    2024年02月08日
    浏览(31)
  • SpringBoot、SpringCloud、Spring Cloud Alibaba版本对照表(详细)

    由于 Spring Boot 3.0,Spring Boot 2.7~2.4 和 2.4 以下版本之间变化较大,目前企业级客户老项目相关 Spring Boot 版本仍停留在 Spring Boot 2.4 以下,为了同时满足存量用户和新用户不同需求,社区以 Spring Boot 3.0 和 2.4 分别为分界线,同时维护 2022.x、2021.x、2.2.x 三个分支迭代。如果不想跨

    2024年02月12日
    浏览(40)
  • SpringBoot、SpringCloud、Spring Cloud Alibaba版本对照表(详细准确)

    ❤️一切信息来自官网,准确详细❤️ Spring Cloud Version Spring Boot Version 2022.0.x aka Kilburn 3.0.x 2021.0.x aka Jubilee 2.6.x, 2.7.x (Starting with 2021.0.3) 2020.0.x aka Ilford 2.4.x, 2.5.x (Starting with 2020.0.3) Hoxton 2.2.x, 2.3.x (Starting with SR5) Greenwich 2.1.x Finchley 2.0.x Edgware 1.5.x Dalston 1.5.x Spring Cloud Dalston, Ed

    2024年02月13日
    浏览(30)
  • SpringCloud学习6(Spring Cloud Alibaba)断路器Sentinel熔断降级

    SpringCloud、SpringCloudAlibaba、SpringBoot版本选择。为了避免各种千奇百怪的bug,我们还是采用官方推荐的毕业版本。 修改tomcat配置最大线程数 引入测试依赖 编写测试代码 这里同时我们在浏览器去请求该地址,响应会变得很慢 测试结论:此时会发现由于thread接口囤积大量请求,

    2023年04月08日
    浏览(42)
  • SpringCloud.04.熔断器Hystrix( Spring Cloud Alibaba 熔断(Sentinel))

    目录 熔断器概述 使用Sentinel工具 什么是Sentinel 微服务集成Sentinel 配置provider文件,在里面加入有关控制台的配置 实现一个接口的限流 基本概念 重要功能 Sentinel规则 流控规则 简单配置 配置流控模式 配置流控效果 降级规则 @SentinelResource的使用 Feign整合Sentinel 由于Hystrix已经停

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

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

    2024年02月15日
    浏览(33)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包