【Spring Cloud Alibaba】初识Spring Cloud Alibaba

目录

  • 回顾
    • 主流的微服务框架
    • Spring Cloud 版本简介
      • Spring Cloud以往的版本发布顺序排列如下:
  • 由停更引发的"升级惨案"
    • 哪些Netflix组件被移除了?
  • 替换方案
    • 服务注册中心:
    • 服务调用:
    • 负载均衡:
    • 服务降级:
    • 服务网关:
    • 服务配置中心:
    • 服务总线:
  • Spring Cloud Alibaba
    • Spring Cloud Alibaba的开源组件
    • Spring Cloud Alibaba的优势
      • 阿里巴巴强大的技术输出能力
      • 集成Dubbo,利用Dubbo在微服务领域的超高人气
      • 云原生趋势,集成阿里云商业化组件
    • Spring Cloud Alibaba的功能
    • Spring Cloud Alibaba的版本
      • 毕业版本依赖关系
      • 组件版本依赖关系
  • SpringCloud与SpringCloud Alibaba的区别

回顾

主流的微服务框架

框架名称说明
MotanMotan(茅台)是新浪微博开源的RPC框架,官网:github.com/weibocom/motan
JSFJSF(京服)是京东的微服务组件。
MSEC毫秒服务引擎(MSEC, Mass Service Engine in Cluster)是腾讯的一个开源框架,适用于在廉价机器组成的集群上开发和运营分布式后台服务。该项目集RPC、名字发现服务、负载均衡、业务监控、灰度发布、容量管理、日志管理、key-value存储于一体,目的是提高开发与运营的效率和质量。
Dubbo阿里巴巴开源的RPC框架,后来加入Apache孵化器并成功毕业。新的名字为Apache Dubbo。
DubboX当当网基于Dubbo开源的PRC框架,后来并入Apache Dubbo。
Netflix OSSNetflix OSS是由Netflix公司开发的一套代码框架,用于解决分布式系统的问题,如:服务注册与发现、负载均衡、熔断降级、限流、网关等。
Spring CloudSpring Cloud是由Pivotal公司开源的微服务架构,提供了微服务系统架构的一站式解决方案。它提供了微服务开发所需的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等组件。
Spring Cloud NetflixSpring Cloud Netflix是Spring Boot和Netflix OSS在Spring Cloud规范下的集成。
Spring Cloud AlibabaSpring Cloud Alibaba 是阿里巴巴提供的微服务开发一站式解决方案,是阿里巴巴开源中间件与 Spring Cloud 体系的融合。Spring Cloud Alibaba 正式入驻Spring Cloud 官方孵化器,并顺利毕业。
Spring Cloud 生态下中微服务整理Spring Cloud并没有重复制造轮子,它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。
主流的微服务治理方案:Spring Cloud Netflix和Spring Cloud Alibaba
serviceCombServiceComb项目是华为开源的微服务框架,2017 年 11 月捐赠给 Apache 社区并启动孵化。作为一站式微服务解决方案。
解决方案级,多语言、多通信协议、标准服务契约、事务最终一致性开源开放,拥抱SpringBoot、SpringCloud、ServiceMesh 等主流生态,低门槛准入,业务侵入度低,架构松耦合
国内政府部门有的会选择华为云,使用ServiceComb开发可以快速优雅的部署到华为云的的pass平台上

Spring Cloud 版本简介

  • Spring Cloud 是一套整合了各大公司开源技术的规范,而这些开源技术的版本由各个公司来维护的,每个子项目都维护了自己的发布版本,所以它不像传统意义上的版本,而是采用了伦敦地铁站的名字根据字母表的顺序结合对应版本的时间顺序来定义一个大版本。
  • 官网:https://spring.io/projects/spring-cloud#learn

Spring Cloud以往的版本发布顺序排列如下:

  • Angel(安吉尔)–>Brixton(布里克斯顿)–>Camden(卡梅登)–>Dalston(达斯顿)–>Edgware(艾奇韦尔)–>Finchley(芬奇利)–>Greenwich(格林威治)–>Hoxton(霍克斯顿)
版本说明
SNAPSHOT代表快照,也就是未完成的意思
GA代表稳定版
RELEASE最终版本,没有太大的问题。
SR正式发布版
RC候选发布版 ,就相当于留校察看,基本只修复比较严重的BUG
PRE(M1、M2)里程碑版主要是修复了一些BUG的版本,一个GA后通常有多个里程碑版
BUILD-XXX开发版,开发团队内部使用,不是很稳定
  • Spring Cloud所有的子项目都依赖Spring Boot框架,所以Spring Boot框架的版本号和Spring Cloud的版本号之间也存在依赖及兼容的关系,如下图所示
    在这里插入图片描述

由停更引发的"升级惨案"

  • 2020-12-22日Spring官方博客宣布,Spring Cloud 2020.0.0正式发布。2020.0.0是第一个使用新的版本号命名方案的Spring Cloud发行版本。在此之前Spring Cloud使用英国伦敦地铁站的命名方式来命名一个大版本。
  • 更新版本没有什么大惊小怪的,但是本次更新却正式开启了Spring Cloud Netflix体系的终结进程。Netflix公司是目前微服务落地中最成功的公司。它开源了诸如Eureka、Hystrix、Zuul、Feign、Ribbon等等广大开发者所知微服务套件,统称为Netflix OSS。在当时Netflix OSS成为微服务组件上事实的标准。
  • 但是在2018年Netflix公司宣布其核心组件Hystrix、Ribbon、Zuul、Eureka等进入维护状态,不再进行新特性开发,只修BUG。
  • 这直接影响了Spring Cloud项目的发展路线,Spring 官方不得不采取了应对措施,在2019年的在 SpringOne 2019 大会中,Spring Cloud宣布 Spring Cloud Netflix项目进入维护模式,并在2020年移除相关的Netflix OSS组件。

哪些Netflix组件被移除了?

  • 在目前最新的Spring Cloud 2020.0.0中仅仅剩下了Eureka,但是留给Eureka的时间也不多了。
  • Feign虽然是Netflix公司开源的,但从9.x版本开始就移交给OpenFeign组织管理,不从属于Netflix OSS范畴,应该阳寿未尽会继续存在在Spring Cloud中
    在这里插入图片描述

替换方案

  • Netflix OSS的突生变故让Spring官方感到“不能在一棵树上吊死”。
  • 在开发维护Spring Cloud相关的组件
  • 比如负载均衡层Spring Cloud Loadbalancer、网关层Spring Cloud Gateway,引入了一些云厂商来分散风险,目前有:
    • 微软的Spring Cloud Azure
    • 阿里的Spring Cloud Alibaba
    • 亚马逊的Spring Cloud for Amazon Web Services
    • 谷歌云平台的 Spring Cloud GCP

在这里插入图片描述

服务注册中心:

  • Eureka:官方停止更新,并且已经有更好的替代产品了,可以使用,但是官方已经不建议使用了(重度患者)。
  • Zookeeper:某些老系统,以前是用的Zookeeper + Dubbo,后来做技术升级,结果发现Spring Cloud的Eureka停更了,然后就用了最少的技术切换,那么就用了Zookeeper做注册中心。
  • Consul:go语言开发的,也是一个优秀的服务注册框架,但是使用量较少,风头都被Nacos抢了。
  • Nacos: 来自于Spring Cloud Alibaba,在企业中经过了百万级注册考验的,不但可以完美替换Eureka,还能做其他组件的替换,所以强烈建议使用,是学习的重点。

服务调用:

  • Feign:Netflix 公司产品,也停止更新了。
  • OpenFeign: Spring社区等不了Netflix更新了,然后就自己做了一个组件,不用Feign了

负载均衡:

  • Ribbon: 也进入了维护状态,停止更新了,但是Spring官方还在使用(轻度患者)。
  • LoadBalancer:Spring官方推出的一个新的组件,打算逐渐取代掉Ribbon,但是现在还处于萌芽状态。

服务降级:

  • Hystrix:官网不推荐使用,但是中国企业中还在大规模使用。
  • Resilience4J:官网推荐使用,但是国内很少用这个。
  • Sentienl: 来自于Spring Cloud Alibaba,在中国企业替换Hystrix的组件,国内强烈建议使用。

服务网关:

  • Zuul:Netflix 公司产品,公司内部产生分歧,有的人想自己出一个Zuul2。
  • Zuul2:也是Netflix 公司准备出的产品,但是由于内部分歧,所以Zuul2已经胎死腹中了。
  • Gateway:Spring社区自己出的网关组件,官方隆重介绍和极度推荐的网关服务组件。

服务配置中心:

  • Config:目前也在使用,风头被Nacos抢了。
  • Nacos:来自于Spring Cloud Alibaba,后来居上,把Config给替换了。

服务总线:

  • Bus:Spring Cloud原生的服务总线组件,现在风头也被Nacos抢了。
  • Nacos:来自于Spring Cloud Alibaba,后来居上,把Bus给替换了。

Spring Cloud Alibaba

  • Spring Cloud Alibaba是阿里巴巴集团下的开源组件和云产品在Spring Cloud规范下的实现。

  • 简单地说,Spring Cloud Alibaba也是微服务开发一站式解决方案

  • 2018年10月31日,Spring Cloud Alibaba正式入驻Spring Cloud 官方孵化器,并发布了第一个预览版本。2019年8月1日在Alibaba仓库发布第一个毕业版本。
    官网:https://spring.io/projects/spring-cloud-alibaba

  • Spring Cloud Alibaba主要为微服务开发提供一站式解决方案,使开发者通过Spring Cloud 编程模型轻松地解决微服务架构下的各类技术问题。

Spring Cloud Alibaba的开源组件

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

作为一家商业公司,阿里巴巴推出 Spring Cloud Alibaba,很大程度上市希望通过抢占开发者生态,来帮助推广自家的云产品。所以在开源社区,夹带了不少私货,这部分组件的整体易用性和稳定性还是很高的。

  • Alibaba Cloud ACM:一款在分布式架构环境中对应用配置进行集中管理和推送的应用配置中心产品。
  • Alibaba Cloud OSS:阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的云存储服务。
  • Alibaba Cloud SchedulerX:阿里中间件团队开发的一款分布式任务调度产品,提供秒级、精准的定时(基于 Cron 表达式)任务调度服务。

Spring Cloud Alibaba的优势

阿里巴巴强大的技术输出能力

  • 阿里巴巴无疑是国内开源技术领域的最有影响力的公司之一,已经有Dubbo、Druid,FastJson等成功的开源组件
  • 再加上阿里不遗余力的推广,社区发展也非常快。

集成Dubbo,利用Dubbo在微服务领域的超高人气

  • Dubbo是国内应用最广的分布式服务框架之一,基于Dubbo改造的Dubbox等也有很多公司在使用
  • Spring Cloud Alibaba对Dubbo做了比较好的集成,可以吸引不少使用Dubbo的开发者。

云原生趋势,集成阿里云商业化组件

  • 云原生(Cloud Native)是今年技术领域特别热门的一个词,云原生是一种专门针对云上应用而设计的方法,用于构建和部署应用,以充分发挥云计算的优势。
  • Spring Cloud Alibaba 集成了阿里云的商业化组件,可以说天然支持云原生特性。

Spring Cloud Alibaba的功能

  • Spring Cloud Alibaba是阿里巴巴结合自身的微服务实践开源的微服务全家桶,其组件比Spring Cloud 中的组件更加好用和强大。并且对的Spring Cloud组件做了很好的兼容。
  • 比如在Spirng Cloud Alibaba中依然可以使用Feign作为服务调用方式,使用Eureak做服务注册发现等等。
  • Spring Cloud Alibaba主要的功能如下:
功能说明
流控制和服务降级支持WebServlet,WebFlux,OpenFeign,RestTemplate,Dubbo访问限制和降级流的功能。它可以在运行时通过控制台实时修改限制和降级流的规则,并且还支持监视限制和降级度量标准。
服务注册和发现可以注册服务,并且客户可以使用Spring托管的bean(自动集成功能区)发现实例。
分布式配置支持分布式系统中的外部配置,配置更改时自动刷新。
Rpc服务扩展Spring Cloud客户端RestTemplate和OpenFeign以支持调用Dubbo RPC服务。
事件驱动支持构建与共享消息系统连接的高度可扩展的事件驱动微服务。
分布式事务支持高性能且易于使用的分布式事务解决方案。
阿里云对象存储大规模,安全,低成本,高度可靠的云存储服务。支持随时随地在任何应用程序中存储和访问任何类型的数据。
阿里云SchedulerX准确,高度可靠,高可用性的计划作业调度服务,响应时间在几秒钟内。
阿里云短信阿里云短信服务覆盖全球,提供便捷,高效,智能的通信功能,帮助企业快速联系客户。

Spring Cloud Alibaba的版本

  • 版本:https://github.com/alibaba/spring-cloud-alibaba/wiki/版本说明

毕业版本依赖关系

在这里插入图片描述

组件版本依赖关系

在这里插入图片描述

SpringCloud与SpringCloud Alibaba的区别

SpringCloudSpringCloud Alibaba
SpringCloud是一个开源的微服务框架,基于SpringBoot进行开发和管理微服务SpringCloud Alibaba是基于SpringCloud的分支项目,主要针对阿里巴巴集团的需求进行定制开发
提供了丰富的组件和功能,如服务注册与发现、负载均衡、熔断、容错、配置管理等在SpringCloud的基础上增加了一些阿里巴巴的组件和功能,如分布式事务、消息队列、分布式锁等
社区活跃,有大量的第三方插件和解决方案社区相对较小,插件和解决方案较少
支持多种注册中心,如Eureka、Consul、Zookeeper等使用Nacos作为默认的注册中心
支持多种API网关,如Zuul、Gateway等使用Spring Cloud Gateway作为默认的API网关
可以与各种技术和框架进行集成,如SpringBoot、Netflix OSS、OpenFeign等可以与阿里巴巴的中间件进行集成,如RocketMQ、Sentinel等
代码质量较高,稳定性较好由于是较新的项目,稳定性和可靠性较SpringCloud还有待验证
  1. 项目起源:Spring Cloud是由Pivotal团队开发和维护的,而Spring Cloud Alibaba是由阿里巴巴团队开发和维护的。

  2. 生态系统:Spring Cloud是一个完整的微服务框架,提供了一系列的组件和工具来构建和管理微服务。它涵盖了服务发现、负载均衡、服务网关、配置管理等功能。而Spring Cloud Alibaba是基于Spring Cloud的增强版,提供了额外的组件和工具,如分布式事务、分布式锁、消息队列等,以满足更复杂的微服务应用需求。

  3. 服务发现与注册中心:Spring Cloud使用Netflix Eureka作为默认的服务发现和注册中心,而Spring Cloud Alibaba使用Nacos作为默认的服务发现和注册中心。Nacos相比Eureka更加强大和灵活,支持更多的功能和特性。

  4. 配置管理:Spring Cloud使用Spring Cloud Config来进行配置管理,而Spring Cloud Alibaba使用Nacos Config来进行配置管理。Nacos Config与Nacos的服务发现和注册中心集成,可以实现统一的配置中心和服务发现。

  5. 分布式事务:Spring Cloud Alibaba提供了Seata分布式事务框架,可以方便地实现分布式事务管理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/21522.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

干货分享 | TSMaster 中 Hex 文件编辑器使用详细教程

TSMaster 软件的 Hex 文件编辑器提供了文件处理的功能,这一特性让使用 TSMaster 软件的用户可以更便捷地对 Hex、bin、mot、s19 和 tsbinary 类型的文件进行处理。 本文重点讲述 TSMaster 中 Hex 文件编辑器的使用方法,该编辑器能实现将现有的 Hex、bin、…

@vue-office/excel 解决移动端预览excel文件触发软键盘

先直接上代码 不耽误大家时间 标明下插件库 非常感谢作者提供预览插件 vue-office/excel 只需要控制CSS :deep(.x-spreadsheet-overlayer) {.x-spreadsheet-selectors {display: none !important;} } :deep(.x-spreadsheet-bottombar) {li.active {user-select: none !import…

家政上门系统源码,家政上门预约服务系统开发涉及的主要功能

家政上门预约服务系统开发是指建立一个在线平台或应用程序,用于提供家政服务的预约和管理功能。该系统的目标是让用户能够方便地预约各种家政服务,如保洁、家庭护理、月嫂、家电维修等,并实现服务供应商管理和订单管理等功能。 以下是开发家政…

linux驱动学习(三)之uboot与内核编译

需要板子一起学习的可以这里购买(含资料):点击跳转 GEC6818内核源码下载:点击跳转 一、环境配置 由于GEC6818对应是64位系统,虚拟机中的linux系统也要是64位,比如:ubuntu16.04.rar …

某红书旋转滑块验证码分析与协议算法实现(高通过率)

文章目录 1. 写在前面2. 接口分析3. 验证轨迹4. 算法还原 【🏠作者主页】:吴秋霖 【💼作者介绍】:擅长爬虫与JS加密逆向分析!Python领域优质创作者、CSDN博客专家、阿里云博客专家、华为云享专家。一路走来长期坚守并致…

力扣SQL50 学生们参加各科测试的次数 查询 三表查询

Problem: 1280. 学生们参加各科测试的次数 👨‍🏫 参考题解 join等价于inner join,不用关联条件的join等价于cross join Code select stu.student_id,stu.student_name, sub.subject_name,count(e.subject_name) attended_exams from Stud…

关于windosw打开安全中心空白的解决方案

关于windosw打开安全中心空白的解决方案 问题如下 问题如下 之后点击一片空白 解决方案如下 按下WINR,输入regedit回车找到路径:“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SecurityHealthService”,然后双击右边的“start”…

windows 下编译 TessRact+leptonica 识别图片文字

目录 1、下载 2. 编译基础依赖库 1.1 zlib 1.2 jpegsr9f 1.3 lpng1643 1.4 libgif 3. 编译tifflib 4. 配置nasm到系统环境中 5. 编译 libjpeg-turbo 6 编译leptonica 7. 编译tesseract 8. 测试验证 1、下载 下载tesseract5.3.2 下载leptonica1.83.1 下载l…

1638. 统计只差一个字符的子串数目

题目 给你两个字符串 s 和 t,请找出 s 中的非空子串的数目,这些子串满足替换一个不同字符以后,是 t 串的子串。换言之,请你找到 s 和 t 串中恰好只有一个字符不同的子字符串对的数目。 一个子字符串是一个字符串中连续的字符。 …

【全开源】旅游门票预订系统(FastAdmin+ThinkPHP+Uniapp)

一款基于FastAdminThinkPHPUniapp开发的旅游门票预订系统,支持景点门票、导游产品便捷预订、美食打卡、景点分享、旅游笔记分享等综合系统,提供前后台无加密源码,支持私有化部署。 ​便捷你的每一次出行🌍 🌟 轻松预订…

骨传导蓝牙耳机买哪款好?年度精选五款骨传导蓝牙耳机推荐

作为音乐爱好者的我,也一直在寻找一款好的骨传导耳机,听音乐对我来说不仅仅是一种消遣方式,更多是一种对生活、工作上压力和困难的舒缓,所以今天给大家推荐几款骨传导耳机。今天推荐这几款骨传导耳机都是比较有性价比,…

计算机网络学习实践:模拟RIP动态路由

计算机网络学习实践:模拟RIP动态路由 模拟动态路由RIP协议 1.实验准备 实验环境:华为模拟器ENSP 实验设备: 3个路由器,3个二层交换机(不是三层的),3个PC机 5个网段 192.168.1.0 255.255.…

电脑视频录制工具,推荐3款,让你的作品更专业!

随着信息技术的飞速发展,电脑视频录制工具在日常工作和娱乐中扮演着越来越重要的角色。它们不仅能帮助我们记录电脑屏幕上的精彩瞬间,还能为教学、演示、游戏直播等多种场景提供便利。本文将详细介绍三款电脑视频录制工具,并分步骤阐述它们的…

如何编辑pdf文件内容?编辑技巧大揭秘,秒变办公达人!

如何编辑pdf文件内容?在数字化办公日益普及的今天,PDF文件因其跨平台、格式稳定的特点,成为我们日常工作和学习中不可或缺的一部分。然而,PDF文件的编辑却常常令人头疼,许多人面对需要修改内容的PDF文件时感到无从下手…

【RPG Maker MV 仿新仙剑 战斗场景UI (九)】

RPG Maker MV 仿新仙剑 战斗场景UI 九 前言角色战斗精灵精灵图设置攻击 战斗背景图 前言 前段天研究并完成了主角人物行走图部分的开发,完成了对应的8方向行走,及精灵的展示。现在开始重新回到战斗场景的开发中,回顾下,已完成功能…

如何手动批准内核扩展 Tuxera NTFS for mac内核扩展需要批准 内核扩展怎么打开

在了解如何手动批准内核扩展之前,我们应该先了解什么叫做内核扩展。内核扩展又被称为KEXT,通过它可以实现macOS系统与软件组件之间的交互,例如磁盘管理、任务管理和内存管理等等。 kext 是内核扩展(Kernel Extension)…

【漏洞复现】海康威视综合安防管理平台 orgManage/v1/orgs/download 任意文件读取漏洞复现

0x01 产品简介 海康威视综合安防管理平台是一套“集成化”、“智能化”的平台,通过接入视频监控、一卡通、停车场、报警检测等系统的设备。海康威视集成化综合管理软件平台,可以对接入的视频监控点集中管理,实现统一部署、统一配置、统一管理和统一调度。 0x02 漏洞概述 海康…

C语言:学生成绩管理系统(含源代码)

一.功能 二.源代码 #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_NUM 100 typedef struct {char no[30];char name[10];char sex[10];char phone[20];float cyuyan;float computer;float datastruct; } *student, student1;typ…

渗透测试报告生成工具

目录 1.前言 1.1 渗透测试报告是什么? 1.2 渗透测试报告的编写需要考虑以下几点&#xff1a; 1.3 一份优秀的渗透测试报告应该具备以下特点&#xff1a; 1.4 在编写渗透测试报告之前&#xff0c;需要进行一些准备工作&#xff1a; 1.5 渗透测试报告一般包括以下部分&…

作为表达式调用时,无法解析类修饰器的签名。vue3+ts+vite,使用装饰器时报错

作为表达式调用时&#xff0c;无法解析类修饰器的签名。 The runtime will invoke the decorator with 2 arguments, but the decorator expects 1.ts(1238) 页面也无法打开 解决方案&#xff1a; {"extends": "vue/tsconfig/tsconfig.dom.json","in…