Spring Cloud核心组件介绍

三大门派

有Spring Cloud的地方就有江湖,我们就来看一看在这个江湖中都有哪些独霸一方的门派!
在这里插入图片描述

Netflix

是先有SpringCloud还是先有Netflix?这是一个好问题。Netflix是一家大名鼎鼎的互联网传媒公司,但为什么它在开源软件领域有这么大的名声呢?这就不得不说起它和SpringCloud的渊源了。

很久很久以前,天和地还没有分开,宇宙混沌一片。有个叫Netflix的公司,在这混沌之中,拿自身的业务动手,开启了一段微服务的改造之旅。在这段漫长的过程中,沉淀出了一系列优秀的微服务组件,比如大名鼎鼎的Eureka,Hystrix,Zuul等等,这些组件经过Pivotal的一系列封装以后就构成了初代目Spring Cloud。

目前Spring Cloud Netflix组件库是Spring Cloud中最受欢迎的项目,并且还拥有最广泛的群众基础,这么说吧,10个用SpringCloud的公司,有八九个都会选用Netflix组件库全家桶来构建自己的技术栈。听到这,同学们可能会问,难道SpringCloud里还有其他的组件库吗?那我们就往下看。

阿里巴巴

阿里近些年开源的步子迈的很大,都说步子迈得大容易扯着裆,不过凭借阿里996+鸡血文化的加持,用互联网行业特有的糙快猛的精神,近几年在开源软件上不断开疆扩土,发展速度和规模都是是可圈可点。

目前开源领域一大热门当属Spring Cloud,尽管前面有Netflix组件库占尽天时地利,可是不妨碍阿里巴巴集团一贯怼天怼地的做派。这不,Spring Cloud大家族中又添新丁,那就是-Spring Cloud Alibaba组件库。

从目前的势头来看,Alibaba组件库还是呈现一路高歌猛进的态势,其中多款组件已经站上擂台和Netflix组件展开直接竞争。得益于阿里集团的福报文化,加班不要命的码农们给这些组件添加了各种业务功能,从我个人使用这两个组件的感受来说,Netflix组件相对来说比较“纯粹和纯净”,Alibaba组件似乎透出一股“KPI导向"的味道(恨不得把能想到的功能全塞进去)。本文我们将以Netflix组件为主,同时也会重点介绍几个Alibaba组件库的组件。

Spring Open Source

这最后一股势力就是Spring自个儿了,由Spring自己独家挂牌的开源组件,可以说是“原配”组件了。都说原配的才是最好的,不过在上面两个重量级组件库面前还真不好说。同学们经常会看到这样-个情况,在某个领域中这三家的组件会扎堆出现。比如服务治理,这三家各自都有一个独立组件,想想大家都是Spring Cloud一家子 ,为何还整出了一副三足鼎立的态势呢?这背后都有很多故事的, 我们在后面进入实战课程之后再来跟大家说说这里面的恩怨情仇。

势力范围

那接下来我们就看一看上面那三股势力都在哪些领域部署了兵力

| | Netfix组件 | Alibaba组件 | Spring或其它开源厂商 |

应用领域名称Netfix组件Alibaba组件Spring或其它开源厂商
服务治理EurekaNacos,Dubbol(Rpc框架)Consul
负载均衡Ribbonspring cloud loadbalancer
服务调用Open FeignDubbo
服务容错Hystrix + Turbine + DashboardSentinelResilience4j
限流SentinelResilience4j
服务网关ZuulGateway
配置管理ArchaiusAlibaba Cloud ACMConfig
消息总线Bus
调用链路追踪SkywalkingSleuth + Zipkin
消息驱动组件Rocket MQSpring Cloud Stream

从上面的表格中可以看出,在大多数的领域当中,我们都有多与一种的解决方案,而且各个组织在不同领域发力程度也不一样。我们在实际的研发当中不会只盯着一个组件库用,而是结合使用来自不同组织开发的组件,这样才能发挥SpringCloud的最强功力。
同学们可能注意到了,阿里巴巴组件库传达出了一股不小的野心,它的很多的组件都和阿里云(Alibaba Cloud)紧密关联了起来,甚至连Nacos都有一股“强推Dubbo”的味道,看上去像是在大力推广阿里集团自己的技术栈,似乎并不打算全心全意服务于SpringCloud原生的生态体系。所以从我个人角度来说,并不太喜欢这种比较“功利”和KPI导向的价值观。

本文已收录至我的个人网站:程序员波特,主要记录Java相关技术系列教程,共享电子书、Java学习路线、视频教程、简历模板和面试题等学习资源,让想要学习的你,不再迷茫。

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

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

相关文章

标题:智能对话新纪元:ChatGPT与文心一言的全面比较

标题:智能对话新纪元:ChatGPT与文心一言的全面比较 引言: 在这个由数据驱动的时代,人工智能语言模型已成为技术创新的前沿。特别是OpenAI的ChatGPT和百度的文心一言(ERNIE Bot),它们不仅代表了…

如何在 Element Plus 中使用自定义 icon 组件 (非组件库内置icon)

先说原理就是将 svg 文件以 vue 组件文件的方式使用 需求:我想要在 Element Plus 得评分组件中使用自定义得图标。 el-rate v-model"value1" /> 组件本身是支持自定义图标的,但是教程中只说明了如何使用 element-plus/icons-vue 图标库内置…

常用的gpt-4 prompt words收集2

1. attended an English speaking class about traffic. 学习了关于…的英语口语课 2. I am a newbie at English. 我英语很菜 3. Please respond in Markdown format text. 请返回markdown格式的回答 4. That’s brilliant! / That’s the best idea I’ve heard all da…

vue3移动端调用手机摄像头实现扫描二维码功能

vue3移动端调用手机摄像头实现扫描二维码功能 需求: vue3vant4 实现移动端网页调用手机摄像头实现扫描二维码,并返回二维码附带信息功能 效果图: 实现方法 采用vue3-qr-reader插件实现 项目安装依赖: npm install --save vue3-…

慢查询定位

慢查询 使用工具 mysql自带慢日志 默认没有开启需要手动开启 查看慢日志中的文件 总结

第三讲_ArkTS的初识

ArkTS的初识 1. ArkTS的基本组成2. ArkTS自定义组件 1. ArkTS的基本组成 装饰器: 用于装饰类、结构、方法以及变量,并赋予其特殊的含义。自定义组件:可复用的UI单元,可组合其他组件,图示中Component装饰的struct Hello…

路由综合实验-nat

一.要求 R2为ISP路由器,其上只能配置ip地址,不得再进行其他的任何配置 PC1-PC2可以ping通客户平板和DNS服务器; 客户端可以通过域名访问http1,通过地址访问HTTP2 R1为边界路由器,!其上只有一个公有ip地址 拓扑图: 子…

php怎么获取图片四个角的坐标 x y

使用PHP GD库来处理图像,记得查看是否安装 代码&#xff1a; <?php // 1. 加载图像文件 $image imagecreatefromjpeg(path/to/your/image.jpg); // 根据实际情况修改路径和格式// 2. 获取图像宽度和高度 $width imagesx($image); $height imagesy($image);// 或者直接…

代码随想录day10:栈与队列part01(用栈实现队列,用队列实现栈)

栈与队列part01 用栈实现队列 时间复杂度: push和empty为O(1), pop和peek为O(n) 空间复杂度: O(n) class MyQueue { public:stack<int> stIn; // 输入栈stack<int> stOut; // 输出栈MyQueue() {}void push(int x) {stIn.push(x);}int pop() {// 只有当输出栈为…

Visual SVN Server实战

文章目录 一、实战概述二、实战步骤&#xff08;一&#xff09;下载Visual SVN Server&#xff08;二&#xff09;安装Visual SVN Server&#xff08;三&#xff09;使用Visual SVN Server1、新建仓库&#xff08;1&#xff09;新建Repository&#xff08;2&#xff09;选择仓库…

eNSP学习——配置通过Telnet登陆系统

实验内容&#xff1a; 模拟公司网络场景。R1是机房的设备&#xff0c;办公区与机房不在同一楼层&#xff0c;R2和R3模拟员工主机&#xff0c; 通过交换机S1与R1相连。 为了方便用户的管理&#xff0c;需要在R1上配置Telnet使员工可以在办公区远程管理机房设备。 为…

批量重命名软件,文件夹批量重命名

有时候为了整理或统一格式&#xff0c;我们需要对多个文件夹进行重命名。传统的重命名方式是一个一个来&#xff0c;既费时又费力。如果你还在用这种方式&#xff0c;那么你真的OUT了&#xff01;现在&#xff0c;有一个强大的工具可以帮你批量重命名多个文件夹&#xff0c;甚至…

匿名/箭头函数,立即执行函数IIFE;函数声明式和函数表达式

目录 匿名/箭头函数&#xff1a;简洁 继承上一层作用域链的this 不绑定arguments,用rest参数 rest 参数&#xff1a;...真正的数组 因为没有function声明&#xff0c;所以没有原型prototype&#xff0c;所以不能作为构造函数 当函数体只有一句时&#xff0c;可省 return ,…

Python常用的自动化小脚本!

一、list转json、string转json 可以使用Python内置的json模块将列表(List)和字符串(String)转换成JSON格式。 List转JSON假设我们有一个列表(List)&#xff1a;my_list [apple, banana, cherry] 我们可以使用json.dumps()函数将该列表转换成JSON格式&#xff1a;import json…

94、计算多边形面积

from shapely.geometry import Polygonclass Point:def __init__(self, x, y):self.x xself.y ydef __repr__(self):return str([self.x, self.y])#多边形标准化 def polygonTransform(P):return [Point(p[0], p[1]) for p in P]#计算多边形的面积官方 def calculateAreaOffi…

EMI抑制的方法

1 EMI抑制 抑制电磁干扰&#xff08;EMI&#xff09;是在电子电路和系统设计中非常重要的一项任务&#xff0c;以确保设备的正常运行并遵守电磁兼容性&#xff08;EMC&#xff09;标准。以下是一些常见的方法&#xff0c;用于在电子系统中进行EMI抑制&#xff1a; 滤波器的使…

安装JDK: 错误1316.指定的账户已存在

安装JDK&#xff1a; 错误1316.指定的账户已存在 引方案尝试JDK卸载重装JDK注册表清理JDK21JDK1.8 解压版JDK1.8 8u3xx 引 在执行了某个神秘脚本后&#xff0c;我电脑的很多软件就不可用了&#xff0c;怀疑是注册表被动到了&#xff0c;包括java开发必备的JDK&#xff0c;也无…

TortoiseSVN客户端如何安装配置并实现公网访问服务端提交文件到本地服务器

文章目录 前言1. TortoiseSVN 客户端下载安装2. 创建检出文件夹3. 创建与提交文件4. 公网访问测试 前言 TortoiseSVN是一个开源的版本控制系统&#xff0c;它与Apache Subversion&#xff08;SVN&#xff09;集成在一起&#xff0c;提供了一个用户友好的界面&#xff0c;方便用…

【Docker】在Windows操作系统上安装Docker

欢迎来到《小5讲堂》&#xff0c;大家好&#xff0c;我是全栈小5。 这是《Docker容器》序列文章&#xff0c;每篇文章将以博主理解的角度展开讲解&#xff0c; 特别是针对知识点的概念进行叙说&#xff0c;大部分文章将会对这些概念进行实际例子验证&#xff0c;以此达到加深对…

Lucas求大组合数C(n,m)%p

将大组合数C&#xff08;n,m&#xff09;%p分解为小组合数C&#xff08;n,m&#xff09;%p乘积的模&#xff0c;n<10^18,m<10^18。 其中求解小组合数可以根据定义式计算&#xff08;质因子分解&#xff09;&#xff0c;也可以通过定义式的变形计算&#xff08;逆元&…