当前位置: 首页 > web >正文

一文详细说明spring cloud和Spring Cloud Alibaba的各自组件以及联系和区别

文章目录

  • 1:springCloud微服务概念
  • 2:springboot概念
  • 3:Spring Cloud (一代)
    • 1:springcloud介绍
    • 2:springcloud发展历史
    • 3:springcloud常用组件
    • 4:springcloud版本和常说的springcloudH版是什么意思?
  • 4:SpringCloudAlibaba(二代)
    • 1:SpringCloudAlibaba介绍
    • 2:常用组件
  • 5:Cloud和CloudAlibaba技术栈对比
    • 1. 整体架构与目标
    • 2. 核心组件对比
      • 服务注册与发现
        • **Spring Cloud-Eureka**:
        • **Spring Cloud Alibaba-Nacos**:
      • 负载均衡
        • **Spring Cloud-Ribbon**:
        • **Spring Cloud Alibaba-LoadBalancer**:
      • 熔断与限流
        • **Spring Cloud-Hystrix**:
        • **Spring Cloud Alibaba-Sentinel**:
      • 分布式配置管理
        • **Spring Cloud-Config**:
        • **Spring Cloud Alibaba-Nacos**:
      • API 网关
        • **Spring Cloud-Gateway/Zuul**:
        • **Spring Cloud Alibaba-Gateway**:
      • 消息队列
        • **Spring Cloud-Kafka/RabbitMQ **:
        • **Spring Cloud Alibaba-RocketMQ**:
      • 分布式事务
        • **Spring Cloud-无**:
        • **Spring Cloud Alibaba-Seata**:
    • 3. 总结对比
    • 4. 如何选择?
    • 5. 未来趋势

1:springCloud微服务概念

提起微服务,不得不提 Spring Cloud 全家桶系列,Spring Cloud 是一个服务治理平台,是若干个框架的集合,提供了全套的分布式系统解决方案。包含了:服务注册与发现、配置中心、服务网关、智能路由、负载均衡、断路器、监控跟踪、分布式消息队列等等。

Spring Cloud 通过 Spring Boot 风格的封装,屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、容易部署的分布式系统开发工具包。开发者可以快速的启动服务或构建应用、同时能够快速和云平台资源进行对接。微服务是可以独立部署、水平扩展、独立访问(或者有独立的数据库)的服务单元,Spring Cloud 就是这些微服务的大管家,采用了微服务这种架构之后,项目的数量会非常多,Spring Cloud 做为大管家需要管理好这些微服务,自然需要很多小弟来帮忙。

2:springboot概念

spring boot并不是一个新的技术,它是基于spring框架下对于“约定优于配置(Convention Over Configuration)”理念下的产物,主要是帮助开发人员更容易更快速的创建独立运行和产品级别的基于spring框架的应用。为什么说springboot是微框架呢?如果大家玩过springboot,那应该很有体会,我们只需要非常少的配置就可以快速构建一个web项目。

而spring boot中并没有新的技术,如果大家对spring框架比较熟悉,那么在学习springboot的时候会更加容易。

围绕springboot构建的spring cloud生态下,目前有两类的比较成熟的实现,一个是基于netflix、另一个是基于alibaba。

  • 约定优于配置 :指通过默认规则减少配置需求,使开发者能够快速启动项目。

3:Spring Cloud (一代)

1:springcloud介绍

我们通过对springboot的使用,就知道,spring从来不是重复造轮子,而是对现有技术的封装和维护,举个简单例子,比如最早spring只提供了IOC和AOP的核心功能,而像ORM框架、缓存、MVC框架,spring只是提供了一种兼容以及支持,所以当时大家说spring是万能胶,可以把各种各样的框架整合进来。

同理,springcloud也不是自己开发组件,他也不是一个框架,因为Spring Cloud的核心并没有实现服务注册、熔断、配置中心等功能,它提供了一个标准规范。而Spring Cloud Netflix才是spring Cloud规范的一种实现。

2:springcloud发展历史

Netflix是一家美国公司,在美国、加拿大提供互联网随选流媒体播放,定制DVD、蓝光光碟在线出租业务。该公司成立于1997年,总部位于加利福尼亚州洛斯盖图,1999年开始订阅服务。2009年,该公司可提供多达10万部DVD电影,并有1千万的订户。2007年2月25日,Netflix宣布已经售出第10亿份DVD。HIS一份报告中表示,2011年Netflix网络电影销量占据美国用户在线电影总销量的45%。

针对多种 Netflix 组件提供的开发工具包,其中包括 Eureka、Ribbon、Feign、Hystrix、Zuul、Archaius 等。

  • Netflix Eureka:一个基于 Rest 服务的服务治理组件,包括服务注册中心、服务注册与服务发现机制的* 实现,实现了云端负载均衡和中间层服务器的故障转移。
  • Netflix Ribbon:客户端负载均衡的服务调用组件。
  • Netflix Hystrix:容错管理工具,实现断路器模式,通过控制服务的节点,从而对延迟和故障提供更强大的容错能力。
  • Netflix Feign:基于 Ribbon 和 Hystrix 的声明式服务调用组件。
  • Netflix Zuul:微服务网关,提供动态路由,访问过滤等服务。
  • Netflix Archaius:配置管理 API,包含一系列配置管理 API,提供动态类型化属性、线程安全配置操作、轮询框架、回调机制等功能。

Spring Cloud Netflix 生态,到2020年,archaus/hystrix/ribbon/zuul/turbine等starter都会进入维护模式,进入维护模式意味着spring cloud团队不会再向这些模块中添加新的功能,但是仍然会修复安全问题和一些block级别的bug。只是没有新的功能迭代了,spring cloud netflix仍然可以继续使用。

进入维护模式的最根本原因还是Netflix对于zuul、ribbon等项目维护投入比较少、所以spring cloud 会在greenwich中把这些项目都进入到维护模式。

所以基本上现在如果构建新的微服务,基本都以springcloud alibaba为基准

3:springcloud常用组件

融合在每个微服务中、依赖其它组件并为其提供服务。

  • Netflix Ribbon,客户端负载均衡,特性有区域亲和、重试机制。

  • Netflix Hystrix,客户端容错保护,特性有服务降级、服务熔断、请求缓存、请求合并、依赖隔离。

  • Netflix Feign,声明式服务调用,本质上就是Ribbon+Hystrix

  • Stream,消息驱动,有Sink、Source、Processor三种通道,特性有订阅发布、消费组、消息分区。

  • Bus,消息总线,配合Config仓库修改的一种Stream实现,

  • Sleuth,分布式服务追踪,需要搞清楚TraceID和SpanID以及抽样,如何与ELK整合。

  • </
http://www.xdnf.cn/news/11652.html

相关文章:

  • Validate表单验证插件之常用参数介绍
  • 网关 GateWay 的使用详解、路由、过滤器、跨域配置
  • 神经网络(NN)网络构建及模型算法介绍
  • 从计网的角度讲明白什么是网关
  • Apollo入门使用手册
  • Java资源大全(更新中)
  • Keil(MDK)STM32和51版本详细安装
  • GPU 性能测试软件:GPU-Z,2023 年 9 月 12 日更新
  • 【19】linux进阶——后台运行()和nohup命令
  • ESFP型人格的特征,ESFP型人格的优势和劣势分析
  • react Native 环境安装配置——图解版一目了然
  • Netty基础入门和基本使用
  • TortoiseSVN使用教程[多图超详细]
  • Numpy的用法详细总结
  • 百度程序员删库跑路被逮捕!
  • 一文看懂Mesh组网
  • Android Gradle开发与应用 (一) : Gradle基础
  • iview--使用总结
  • 抖音越狱版本App下载
  • Verilog基础语法(13)之case语句
  • Element-UI介绍:主题定制、自定义组件和插件扩展
  • OpenCV快速入门:初探
  • Fiddlerd的工作原理与配置
  • JDK安装太麻烦?一篇文章搞定
  • Maven详解(入门到精通)学习maven有这个就够了
  • 传奇GEE引擎版本如何封挂?GEE引擎设置简单的封挂脚本教程
  • 窄带高清技术之百万级并发下的演唱会直播细节修复
  • C#从入门到精通(史上最全,爆肝十万字)
  • 独家:经开区受理京东涉嫌卖假货投诉案,刘强东在日本难掌控业务
  • 程序员福利各大平台免费接口,非常适用!