广告
返回顶部
首页 > 资讯 > 后端开发 > Python >浅谈SpringCloud Alibaba和SpringCloud的区别
  • 878
分享到

浅谈SpringCloud Alibaba和SpringCloud的区别

SpringCloudSpringCloud Alibaba 2023-05-20 08:05:55 878人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录spring cloud Netflix 和 spring Cloud 是什么关系?为什么有了Spring Cloud又出来个Spring Cloud Alibaba呢?Clou

Spring Cloud Netflix 和 Spring Cloud 是什么关系?

Spring Cloud Netflix框架也属于Spring Cloud,但是Netflix并不是由spring来进行开发的。而是由Netflix(Nasdaq NFLX) 美国奈飞公司开发的。在某一时间段进行开源了出来,然后spring官网认为他的微服务架构体系挺完善,然后直接给集成到了cloud社区当中。所谓集成也就是二次封装,封装了Netflix框架各个组件的starter,于是乎我们需要哪个组件就引入哪个组件的starter,用少量的配置便可以快速上手。

Netflix源码社区:https://GitHub.com/Netflix

Netflix其实开源的项目有很多,而spring呢,也是将Netflix当中的五大组件给集成到了cloud当中,五大组件分别是Eureka + Ribbon + Feign + Hystrix + Zuul。其实在没了解过历史的情况下,很多人都会以为这五个组件是cloud提供的,并且认为cloud是微服务的一站式解决方案,其实真正一站式的是Netflix,毫不夸张的讲就是Netflix体系成就了现在的cloud!

这五个组件构造了我们所谓的一站式微服务架构,而微服务架构完全是由注册中心、负载均衡、远程调用、熔断器、网关来组成的。正因为这五个组件也彻底将Java引入到了现在人人皆知的微服务架构,他更像是一种框架发展趋势。

组件名称组件作用
Eureka注册中心,服务注册、发现等
Ribbon负载均衡,多服务时做负载
Feign服务间内部调用
Hystrix熔断器,服务熔断、降级
Zuul服务网关,所有外部请求经过网关进行过滤转发(路由+过滤+转发)

闲聊: 有的公司甚至根本都涉及不到高并发,但是也会毫不犹豫的使用微服务架构。其实我 个人感觉哈,如果项目特别小的情况下,单体SpringBoot项目其实就足够了,没必要去盲目跟风。当然要是奔着学习而工作的,使用新架构也没有任何毛病。

注意:面试的时候经常会问Netflix的五大组件,所以我认为还是有必要学习一哈的。

为什么有了Spring Cloud又出来个Spring Cloud Alibaba呢?

Spring Cloud Netflix的五个组件其实完全足够开发一套成熟的微服务架构,但是为什么又出来个 Spring Cloud Alibaba呢?

原因:2018年12月cloud官网对外宣布: Https://spring.io/blog/2018/12/12/spring-cloud-greenwich-rc1-available-now

其实在cloud对外宣布前,Netflix的很多产品已经早就出去停更状态。而cloud也没有任何办法,例如zuul停更,cloud一直等着他更新等不来,于是直接自己开发了一个网关gateway。还有Feign,cloud直接开发了个openFeign。

在这里插入图片描述

这个是官网18年12月发出的框架替代:

在这里插入图片描述

而Alibaba在Netflix停更阶段,开发出了自己的微服务组件,Nacos注册中心和Sentinel熔断限流组件。并且成功于2018.10.31,Spring Cloud Alibaba 正式入驻了 Spring Cloud 官方孵化器,并在 Maven 中央库发布了第一个版本。这样一来cloud也算是松了一口气。

在这里插入图片描述

当然商人之间肯定有利益交易,Spring Cloud Alibaba也是利用spring官网来推广自己的云产品。不管人家推荐不推荐,只要开源出来了,我认为就是值得我们学习的!并且说真心话,Nacos注册中心不输于任何现有的注册中心。Sentinel熔断器和Hystrix熔断器那就更不用提了,简直一个天上一个地下。当然Netflix属于老产品,Alibaba属于借助人家的思想而后开发的。所以本身也没有可比性。

在这里插入图片描述

Spring Cloud Alibaba都有哪些功能呢?

源码:https://github.com/alibaba/spring-cloud-alibaba SpringCloud Alibaba

官网:https://spring.io/projects/spring-cloud-alibaba#overview

github中文文档:https://github.com/alibaba/spring-cloud-alibaba/blob/2.2.x/README-zh.md

也可以通过官网来看文档:

在这里插入图片描述

使用Spring Cloud Alibaba,您只需添加一些注解和配置,您的应用程序就可以使用阿里巴巴的分布式解决方案,并通过阿里巴巴中间件构建您自己的分布式系统

Spring Cloud 阿里巴巴的特点:

  • 流量控制和服务降级:支持WEBServlet、WebFlux、OpenFeign、RestTemplate、dubbo接入限流降级功能。可以在运行时通过控制台实时修改限流和降流规则,还支持对限流和降流Metrics的监控
  • 服务注册和发现:可以注册服务,客户端可以使用 Spring 管理的 bean,自动集成 Ribbon 发现实例。
  • 分布式配置:支持分布式系统的外部化配置,配置变化时自动刷新。
  • rpc Service:扩展 Spring Cloud 客户端 RestTemplate 和 OpenFeign 以支持调用 Dubbo RPC 服务。
  • 事件驱动:支持构建与共享消息系统连接的高度可扩展的事件驱动微服务。
  • 分布式事务:支持高性能、易用的分布式事务解决方案。
  • 阿里云对象存储:海量、安全、低成本、高可靠的云存储服务。支持随时随地在任何应用程序中存储和访问任何类型的数据。
  • 阿里云SchedulerX:精准、高可靠、高可用的定时作业调度服务,响应时间秒级。
  • 阿里云短信:覆盖全球的短信服务,阿里短信提供便捷、高效、智能的通信能力,帮助企业快速联系客户。

组件:

  • Sentinel:把流量作为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。
  • Nacos:一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
  • RocketMQ:一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务。
  • Seata:阿里巴巴开源产品,一个易于使用的高性能微服务分布式事务解决方案。
  • Alibaba Cloud OSS: 阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。您可以在任何应用、任何时间、任何地点存储和访问任意类型的数据。
  • Alibaba Cloud SchedulerX: 阿里中间件团队开发的一款分布式任务调度产品,提供秒级、精准、高可靠、高可用的定时(基于 Cron 表达式)任务调度服务。
  • Alibaba Cloud SMS: 覆盖全球的短信服务,友好、高效、智能的互联化通讯能力,帮助企业迅速搭建客户触达通道。

Spring Cloud Netflix属于cloud集成了人家,而Spring Cloud Alibaba属于是自己维护,但是加入了cloud社区,也就是在cloud官网可以看到。这两个都不是一个普通组件,像gateway和openFeign这些属于一个组件,而Netflix和Alibaba是一套组件,这个关系一定要屡明白!

Cloud 框架上目前有哪些变化呢?

名称之前的最新的目前所替代的
注册中心EurekaConsul(spring的)、Nacos(Alibaba的)
配置中心Config(spring的)Consul(spring的)、Nacos(Alibaba的)
网 关ZuulSprinGCloud Gateway(spring的)
负载均衡RibbonLoadbalancer (spring的)
熔断降级HystrixSentinel(Alibaba的)
服务调用FeignOpenFeign(spring的)

其中Eureka + Ribbon + Feign + Hystrix + Zuul都属于Netflix 的 NacosSentinel属于是Cloud Alibaba的,其他均属于spring cloud自己的,而spring cloud属于是spring框架的其中一个框架。

到此这篇关于浅谈SpringCloud Alibaba和SpringCloud的区别的文章就介绍到这了,更多相关浅谈SpringCloud Alibaba内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 浅谈SpringCloud Alibaba和SpringCloud的区别

本文链接: https://www.lsjlt.com/news/214270.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 浅谈SpringCloud Alibaba和SpringCloud的区别
    目录Spring Cloud Netflix 和 Spring Cloud 是什么关系?为什么有了Spring Cloud又出来个Spring Cloud Alibaba呢?Clou...
    99+
    2023-05-20
    SpringCloud SpringCloud Alibaba
  • SpringCloud Alibaba和SpringCloud有什么区别
    这篇文章主要介绍了SpringCloud Alibaba和SpringCloud有什么区别,具有一定借鉴价值,需要的朋友可以参考下。下面就和我一起来看看吧。Spring Cloud Netflix 和 Spring Cloud 是...
    99+
    2023-08-03
  • 浅谈springcloud常用依赖和配置
    spring cloud常用依赖和配置整理 常用依赖 // pom.xml <?xml version="1.0" encoding="UTF-8"?&...
    99+
    2022-11-12
  • 聊聊SpringCloud和SpringCloudAlibaba的区别
    目录SpringCloud和SpringCloudAlibaba的区别SpringCloud Alibaba与Spring Cloud搭配方案开源地址SpringCloud几大痛点S...
    99+
    2022-11-12
  • 浅谈SpringCloud的微服务架构组件
    SpringCloud是一系列框架的有序集合,为开发人员构建微服务架构提供了完整的解决方案。 Spring Cloud根据分布式服务协调治理的需求成立了许多子项目,每个项目通过特定的...
    99+
    2023-05-17
    SpringCloud SpringCloud微服务架构 SpringCloud组件
  • 一文浅谈:&和&&的区别
    当我们在Java中使用逻辑运算符时,经常会用到两个符号:& 和 &&。这两个符号在表达式中的作用非常重要,但是很多人容易混淆它们的使用,因此我们需要了解它们之间的区别。 一、& 和 && 的用途 & 和 && 都可以用于逻辑运算,例 in...
    99+
    2023-10-24
    java jvm 面试
  • 浅谈System.getenv()和System.getProperty()的区别
    最近遇到一个需求,服务器实例需要获取当前的环境变量。经过查资料,发现环境变量可以在两个地方设置。 一、在系统层面设置环境变量 在系统层面设置环境变量,之前我们应该都操作过,以wind...
    99+
    2022-11-12
  • 浅谈RedisTemplate和StringRedisTemplate的区别
    目录一、区别二、问题总结三、案例:springboot整合redis五种数据结构API1、string(字符串)类型2、hash(哈希)类型3、list(列表)类型4、set(无序集...
    99+
    2022-11-13
  • 浅谈Mysql8和mysql5.7的区别
    目录1.NoSql存储2.隐藏索引3.设置持久化4.UTF-8编码5.通用表表达式(CommonTableExpressions)1.NoSql存储 Mysql从5.7 版本提供了N...
    99+
    2022-11-13
  • 浅谈String、StringBuffer和StringBuilder的区别
    在Java开发面试经常会被问到String,StringBuider,StringBuffer区别,很多人回答得不够全面和深入,那么它们到底都有什么区别呢!三者都是用来对字符串进行操作,String通常用来定义一个变量,而StringBui...
    99+
    2019-10-22
    java入门 java String StringBuffer StringBuilder
  • 浅谈HttpClient、okhttp和RestTemplate的区别
    一、HttpClient 1、pom依赖 <!--HttpClient--> <dependency> <groupId>common...
    99+
    2022-11-12
  • 浅谈Ribbon、Feign和OpenFeign的区别
    Ribbon Ribbon 是 Netflix开源的基于HTTP和TCP等协议负载均衡组件 Ribbon 可以用来做客户端负载均衡,调用注册中心的服务 Ribbon的使用需要代码里手...
    99+
    2022-11-12
  • 浅谈Java中Lock和Synchronized的区别
    目录1. 从功能角度来看2. 从特性来看3. 从性能方面来看1. 从功能角度来看 Lock和Synchronized都是java中去用来解决线程安全问题的一个工具 2. 从特性来看 ...
    99+
    2022-11-13
  • 浅谈Linux 脚本 sh 和 ./ 的区别
    如果.不在PATH里面,要执行当前目录下的可执行文件,使用全路径: ./executable-file PATH是环境变量,如果将当前目录“./”添加到环境变量中,那么也可以不用“./”,直接输入当前目录下...
    99+
    2022-06-04
    浅谈 脚本 区别
  • 浅谈StringEntity 和 UrlEncodedFormEntity之间的区别
    StringEntity 和 UrlEncodedFormEntity的区别 一、UrlEncodedFormEntity //设置请求方式与参数 URI uri = new U...
    99+
    2022-11-12
  • 浅谈JDK7和JDK8的区别在哪
    目录一、接口中的default方法二、lambda表达式三、函数式接口四、StreamAPI五、移出永久代,元空间替换六、HashMap中的优化七、currentHashMap的优化...
    99+
    2022-11-12
  • 浅谈一下forward和redirect的区别
    目录1.forward 和redirectforward又叫转发,表示转发,当请求来到时,可以将请求转发到其他的指定服务,用户端不知晓。redirect又叫重定向,表示转发,当请求发...
    99+
    2023-03-24
    forward redirect forward和redirect的区别
  • 浅谈JS中var,let和const的区别
    目录区别1区别2区别3区别4区别5区别6区别7区别1 let和var用来声明变量,const用来声明常量。 变量就是赋值后可以改变它的值,常量就是赋值后就不能改变它的值。 当声明为对...
    99+
    2022-11-13
  • 浅谈synchronized加锁this和class的区别
    目录synchronized 用法1.加锁 class 共享一个类实例2.加锁 class 创建多个实例3.加锁 this 共享一个类实例4.加锁 this 创建多个类实例总结syn...
    99+
    2022-11-12
  • 浅谈Java中static和非static的区别
    关于static和非static变量的区别 static 修饰的变量称为类变量或全局变量或成员变量,在类被加载的时候成员变量即被初始化,与类关联,只要类存在,static变量就存在。非static修饰的成员变量是在对象new出来的时候划分存...
    99+
    2023-05-31
    java static ava
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作