共同学习|Spring Cloud Alibaba一一简介篇

发布时间:2024年01月19日

1.微服务架构思想

微服务架构的提出者:马丁福勒

Microservices

马丁·福勒对微服务大概的概述如下:

就目前而言,对于微服务业界并没有一个统一的、标准的定义(While there is no precise defintion of this architectural style)。

? ? ? ? ?但通常而言,微服务架构是一种架构模式或者说是一种架构风格,他提倡将单一应用程序划分成一组小的服务,每个服务独立运行在自己的进程中,服务之间互相协调、互相配合,为用户提供最终价值。服务之间采用轻量级的通信机制互相沟通(通常是基于HTTP的RESTFUL API)。每个服务都围绕着具体业务进行构建,并且能够独立地部署生产环境、类生产环境等。另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建,可以有一个非常轻量级的集中式管理来协调这些服务。可以使用不同的语言来编写服务。也可以使用不同的数据存储。简而言之,微服务架构样式是一种将单个应用程序开发为一组小服务的方法,每个小服务都在自己的进程中运行并于轻量级机制(通常是HTTP资源API)进行通信。这些服务围绕业务功能构建,并且可以由全自动部署机制独立部署。这些服务的集中管理几乎没有,它可以用不同的编程语言编写并使用不同的数据存储技术。

  1. 微服务架构只是一个样式,一个风格。
  2. 讲一个完整的项目,拆分成多个模块去分别开发。
  3. 每一个模块都是单独的运行在自己的容器中。
  4. 每一个模块都是需要相互通讯的。Http、RPC、MQ。
  5. 每一个模块之间是没有依赖关系的,单独的部署。
  6. 可以使用多种语言区开发不同的模块。
  7. 每个模块都是一个独立的进程。
  8. 中心化的管理。
  9. 使用MySQL数据库、Redis、ES去存储数据,也可以使用多个MySQL数据库。

总结:将复杂臃肿的单体应用进行细粒度的划分,每个拆分出来的服务各自打包部署。

2、Spring Cloud Alibaba介绍

为什么会出现Spring Cloud Alibaba

所谓一句话“新东西的出现必然是因为市场需求的需要”。我们开发人员或者准开发人员有了这个需求了。因为SpringCloud Netflix 进入到了维护阶段。首先因为SpringCloud版本迭代的非常快,每发布一个release之后又会紧接着发布下一个版本,所以可能会积累一系列的bug,日积月累的使用肯定会出现这样那样的问题。

进入到维护模式,意味着不会再有新的组件技术出现。只是在原来的基础上修修补补。技术上不更新,总要有人去做的吧,几年前Dubbo被SpringCloud所取代。相同的剧本,可惜阿里巴巴和spring社区都是巨头,巨头之间战斗要考虑很多,越是它们想到了合作,SpringCloud与alibaba相结合,技术上有人负责更新新的组件,也还可以继续使用Spring社区的技术,阿里另外一方面也可以推广一波阿里云和各种商业软件,双赢局面。于是SpringCloud Aliababa 诞生了。

Spring Cloud Alibaba 优势

SpringCloud Aliabab 系列组件,其中包含了阿里开源组件,阿里云商业化组件,以及集成SpringCloud组件

开源组件

  1. Nacos:一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
  2. Sentinel:把流量作为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。
  3. RocketMQ:开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务。
  4. Dubbo:这个就不用多说了,在国内应用非常广泛的一款高性能JavaRPC框架。
  5. Seata:阿里巴巴开源产品,一个易于使用的高性能微服务分布式事务解决方案。
  6. Arthas:开源的Java动态追踪工具,基于字节码增强技术,功能非常强大。

商业组件

Alibaba Cloud ACM:一款分布式架构环境中对应用配置进行集中式管理和推送的应用配置中心产品。

AlibabaCloud OSS:阿里云对象存储服务(Object Storage Service,简称OSS),是阿里云提供的云存储服务。

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

集成SpringCloud组件

SpringCloudAlibaba 作为整套的微服务解决组件,只依靠目前阿里的开源组件是不够的,更多的是集成当前的社区组件吗,所以SpringCloudAlibaba可以集成Zuul,OpenFeign等网关,也支持Sprinig Cloud Stream 消息组件。

SpringCloudAlibaba简介

官网

SpringCloudAlibaba致力于提供微服务开发的一站式解决方法。此项目包含开发分布式应用微服务的必须组件,方便开发者通过SpringCloud编程模型轻松使用这些组件来开发分布式应用服务。依托SpringCloudAlibaba,您只需要添加一些注解和少量的配置,就可以将SpringCloud应用接入阿里微服务解决方案,通过阿里中间件来迅速搭建分布式应用系统。

主要功能

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

版本说明

官网说明

文章来源:https://blog.csdn.net/qq_22903531/article/details/135693017
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。