一篇文章掌握SpringCloud与SpringCloud Alibaba的区别

目录

一、SpringCloud组件的升级与替换

二、服务注册中心的比较

1、根据CAP理论对注册中心进行分类

2、Zookeeper通过Zab协议保证强一致性

3、Eureka保证高可用性

4、Nacos既支持AP模式又支持CP模式

三、服务调用框架的比较

1、Ribbon

2、OpenFeign

3、Dubbo

四、服务降级框架的比较

Hystrix和Sentinel的比较


一、SpringCloud组件的升级与替换

由于SpringCloud Netflix原先的一些组件进入停更维护状态,因此这些组件逐渐被SpringCloud Alibaba一些新技术所替代。

SpringCloud Alibaba,实际上对我们的SpringCloud2.x和1.x实现拓展组件功能

1.Nacos=分布式配置中心+分布式注册中心=Eureka+Config

2.目的是为了推广阿里的产品,如果使用了SpringCloud Alibaba,最好使用alibaba整个体系产品。

序号组件SpringCloudSpringCloud Alibaba
1服务注册中心EurekaZookeeper、Consul、Nacos(推荐)
2配置中心ConfigNacos
3服务总线(消息总线)BusNacos
4负载均衡RibbonLoadBalancer
5服务调用FeignOpenFeign、Dubbo
6服务网关ZuulGateway
7服务降级(熔断降级)HystrixSentinel(流量控制、熔断降级、系统负载保护)
8服务跟踪(链路追踪)Sleuth&ZipkinSkyWalking
9分布式事务无(第三方替代方案:2pc)Seata
10分布式任务调度无(第三方替代方案:xxl-job)SchedulerX
11消息中间件无(第三方替代方案:RabbitMQ)RocketMQ
12批量任务Spring Cloud TaskSpring Cloud Task
13数据流Stream
14服务安全Security或(第三方替代方案:Shiro)Security

二、服务注册中心的比较

1、根据CAP理论对注册中心进行分类

  • 保证CP(注重一致性):ZookeeperConsul

  • 保证AP(注重可用性):Eureka

  • 既支持CP又支持APNacos

2、Zookeeper通过Zab协议保证强一致性

因此, Eureka可以很好的应对因网络故障导致部分节点失去联系的情况,而不会像Zookeeper

使整个注册服务瘫痪。

  • 所有的写请求必须经过leader节点传递给其他follower节点

  • 但是当leader节点因为网络故障与其他节点失去联系时,剩余节点会重新进行leader选举。问题在于,选举leader的时间太长,30 ~ 120s, 且选举期间整个zk集群都是不可用的,这就导致在选举期间注册服务瘫痪

  • 3、Eureka保证高可用性

  • Eureka各个节点都是平等的,几个节点挂掉不会影响正常节点的工作,剩余的节点依然可以提供注册和查询服务。而Eureka的客户端在向某个Eureka注册或时如果发现连接失败,则会自动切换至其它节点,只要有一台Eureka还在,就能保证注册服务可用,只不过查到的信息可能不是最新的(不保证强一致性)。

  • 此外,Eureka还有自我保护机制:如果在15分钟内超过85%的节点都没有正常的心跳(短时间内丢失过多客户端),那么Eureka就认为客户端与注册中心出现了网络故障(如不是服务真的不可用了),此时会开启自我保护机制

  • Eureka不再从注册列表中移除因为长时间没收到心跳而应该过期的服务

  • Eureka仍然能够接受新服务的注册和查询请求,但是不会被同步到其它节点上(即保证当前节点依然可用)。

  • 网络稳定时,当前实例新的注册信息会被同步到其它节点中。

因此, Eureka可以很好的应对因网络故障导致部分节点失去联系的情况,而不会像Zookeeper那样使整个注册服务瘫痪。

4、Nacos既支持AP模式又支持CP模式

  • AP模式:不需要存储服务级别信息且服务实例是通过nacos-clinet注册,且能够保持心跳上报,可采用AP模式。如SpringCloud服务。AP模式下只支持注册临时实例。

  • CP模式:如需要在服务级别编辑或存储配置信息,则需使用CP模式,如K8S,DNS。AP模式下只支持注册持久化实例。

三、服务调用框架的比较

1、Ribbon

  • Ribbon是一套客户端负载均衡的工具,使用时需与RestTemplate配合使用。

  • 使用是需要模拟http请求然后使用RestTemplate发送给其他服务,步骤比较繁琐。

  • 负载均衡:支持轮询、随机、空闲策略、响应时间策略

2、OpenFeign

  • 同样使用HTTP协议进行通讯。

  • 使用时只需创建一个接口并使用注解@FeignClient)的方式配置, 即可完成对服务提供方的接口绑定,是对Ribbon+RestTemplate的进一步封装。

  • OpenFeign内部集成了 Ribbon,本质上是通过Ribbon完成负载均衡功能。

3、Dubbo

  • 支持多种传输协议Dubbo、Rmi、http、redis。适合数据量小、高并发和服务提供者远远少于消费者的场景。

  • 负载均衡:支持随机、轮询、活跃度、Hash一致性,负载均衡的算法可以精准到某个服务接口的某个方法。

四、服务降级框架的比较

Hystrix和Sentinel的比较

  • Hystrix本身就是一个非常出色的熔断降级框架Sentinel则是在Hystrix的基础上对其进行进一步的升级

  • Sentinel使用更方便:Sentinel提供了一个非常简洁的控制台界面,在控制台界面中即可非常方便地配置限流降级规则。

  • 28
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring CloudSpring Cloud Alibaba都是用于构建分布式系统的开发框架,但它们有一些区别Spring CloudSpring团队开发的一个开源框架,它提供了一组工具和组件,用于构建和管理分布式系统的各个方面,如服务发现、负载均衡、配置管理、消息总线等。Spring Cloud基于Spring Boot,并且与Spring家族的其他项目无缝集成,使得构建和部署分布式系统变得更加简单和高效。 Spring Cloud Alibaba是在Spring Cloud基础上进行扩展的一个子项目,它是由阿里巴巴开发和维护的。Spring Cloud Alibaba提供了一系列的解决方案,如服务注册与发现、配置中心、消息队列、限流熔断、调用链追踪等,以满足企业级分布式系统的需求。Spring Cloud Alibaba还集成了阿里巴巴的开源项目,如Nacos、Sentinel、RocketMQ等,使得开发人员可以更方便地使用这些阿里巴巴的技术栈。 因此,Spring Cloud主要关注于构建分布式系统的各个方面,而Spring Cloud Alibaba则在此基础上提供了更多与阿里巴巴技术栈集成的功能和解决方案。根据具体的需求,开发人员可以选择使用Spring Cloud或者Spring Cloud Alibaba来构建和管理自己的分布式系统。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [springcloud-alibaba:springcloud阿里巴巴演示](https://download.csdn.net/download/weixin_42157188/16207344)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [xc-spring-cloud-alibabaSpring Cloud阿里巴巴(2.2.1最新版)+ nacos + dubbo + gateWay + sentinel + ...](https://download.csdn.net/download/weixin_42107561/14958068)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值