Spring Cloud Alibaba到底坑不坑?

之前我发过一篇《说说我为什么看好Spring Cloud Alibaba》,然后这两天有网友给我转了这篇文章《坑爹项目spring-cloud-alibaba,我们也来一个》,问我的看法是怎么样的,聊天时候简单说了一下。今天在家休息,抽空整理一下内容,逐点说一下我的看法,主要还是觉得这篇文章博眼球的成分高一些,因为这篇文章的解读与之前其他某些自媒体发布的《Eureka 2.0 开源工作宣告停止,继续使用风险自负》一文有异曲同工之“妙”,如果读者没有真正的理解Spring Cloud与Spring Cloud Alibaba,就很有可能会对它们有什么误解,然后产生这样的想法:

  • 感觉很有道理,这东西真垃圾
  • 标题很燃,必须转发

下面具体来说说该文章中,那些我认为不太正确的解读:

第一点:远程调用RPC

看看这篇文章的解读:

SpringCloud默认的是Feign和Ribbon,主要是提供了远程调用请求和解析,以及负载均衡的功能。客观点来说,如果不用这两个组件,就会越来越四不像,干脆也别叫SpringCloud了,所以替换不得。
RPC会大量使用动态代理的功能,将你的字符串或者配置(因为网络传输方便)搞成动态的接口。

你也可以写一个RPC进行集成,有很多教程教你手撸一个。

爸爸版的集成了个dubbo,dubbo就是个RPC。所以你一用这玩意,其他的一些关键组件也得跟着全套的换,组件就不叫组件了!

作者认为Spring Cloud的负载均衡和远程调用必须使用Feign和Ribbon,这是Spring Cloud的默认实现。如果换成Dubbo,就是四不像了。

说说我的想法:

第一点:Dubbo在融入Spring Cloud的时候,真的就是四不像吗?如果真正看过Spring Cloud Alibaba以及理解Spring Cloud Common中的抽象的话,这个问题根本就不用去讨论。Spring Cloud Alibaba Dubbo在实现的时候是兼容Feign的编程模型的。有兴趣的读者可以看看小马哥在该项目中的案例:

Github地址:https://github.com/spring-cloud-incubator/spring-cloud-alibaba/tree/master/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples

第二点:Feign和Ribbon并不是Spring Cloud的标准,它们也只是Netflix OSS中的组件。对于负载均衡,大家可以了解一下spring-cloud-loadbalancer,它现在是Spring Cloud Common的一部分,这才是真正的标准。对于Spring Cloud Alibaba在整合Dubbo的时候兼容Feign客户端,已经是非常有用户意识了。

Github地址:https://github.com/spring-cloud-incubator/spring-cloud-loadbalancer

所以,作者到底有没有看过Spring Cloud Alibaba Dubbo的方案?

第二点:注册中心

看看这篇文章的解读:

服务注册中心是微服务的另外一个必备组件,用来协调服务提供者和调用者的相互发现,SpringCloud默认的注册中心是Eureka。

爸爸版的用的是Nacos。Nacos的更新目前来看还是比较活跃的,但真没有必要集成在一个Cloud中。Nacos最好的方式还是独立发布,然后维护一个starter。开发者可以按照自己公司的环境进行有选择性的集成或替换。集成一个组件的成本是比较低的,远远低于删掉一堆自以为是的功能。

SpringCloud还可以选择Zookeeper,或者Consul,甚至Etcd等,进行注册中心的搭建。目前,Eureka宣布不再维护后,Consul应该是首要选择。

Consul自带Dashboard和ACL,能够看到大多数你所关心的信息。为了能够集成在我们公司的体系中,你可能会开发一些后台管理功能,进行更多的控制。这部分开发简单,只需要做个界面,直接通过API读取Consul的数据就可以了。

说说我的想法:

第一点:注册中心的选择。对于Eureka不再更新之后,到底选择使用哪个并没有完全的最优解,存在即合理,选择适合自己团队(技术栈、使用成本)的,才是最需要考虑的点。

第二点:作者建议“Nacos最好的方式还是独立发布,然后维护一个starter”。这确实是一个很好的建议,但是这点我就奇怪了,作者到底有没有看过Nacos?Nacos目前就是独立发布的,Spring Cloud Alibaba对Nacos的支持,只是Nacos在客户端应用中,针对Spring Cloud用户的一种应用方式而已。

所以,作者到底有没有看过Spring Cloud Alibaba Nacos的方案?

第三点:熔断、限流

看看这篇文章的解读:

这部分已经被炒作成微服务体系的必备组件,但扪心自问,这个功能对于中小型的应用可能就是一个摆设。但我们还是要搞的,因为这是个卖点。

SpringCloud默认的组件是Hystrix,提供了多线程和信号量来控制的不同方式。可惜的是Hystrix也宣布不再维护了,官方推荐的替换版本是resilience4j。

熔断限流功能其实是非常简单的,同事花了一周时间就撸了个足够用的组件。这部分的主要设计在于能够简单的应用,最好是能够通过后台配置实时生效。

爸爸版的是Sentinel,虽然也带了个后台,但是并没有和注册中心进行集成,搞了个不伦不类。

我要用Sentinel,我自己集成就好了,用你个大头鬼。

说说我的想法:

第一点:我觉得作者能碰到一个能撸出熔断、限流框架和配置管理的同事,还是非常幸运的。但是并不是所有的团队都有人可以做这些,所以我觉得有这样的开源项目不管放在什么时候,都是对行业有益的。你不用没啥问题,但是并不代表对别人没用,并不代表这个项目不够优秀。

第二点:对于作者所说的,没有与注册中心集成,搞得不伦不类。这里的不伦不类,一直没能Get到作者的点。。。不知道是不是有点“为赋新词强说愁”的感觉?个人在对比Hystrix和Sentinel的时候,还是觉得有非常多要比Hystrix做得更好的地方的。

当然真正应用到自己的架构体系中,通常都是需要做一些适配、自定义等工作的。但是,对于开源产品的扩展,从来都不是用来抨击开源项目的核心原因。

总结

现在技术圈有个怪现象,自从一些技术自媒体人开始分享自己如何通过分享技术来赚钱开始,催生出了越来越多的技术自媒体。

然后就出现了这样的奇葩现象:

  • 没有做过面试官的人在分享如何应对面试
  • 没有做过架构师的人在分享如何成为架构师
  • 没有赚到钱的人在分享如何赚钱
  • 不是中产的人在分享如何成为中产

不可否认,做技术自媒体是可以赚钱。但是单纯为了赚钱的技术自媒体,生搬硬套那些大V们分享的赚钱方法,为了追求流量,会使用夸大表述、扭曲事实、传播侵权内容、编故事博取同情等手段来获得关注和转发。这使得很多技术内容的分享就变得不那么纯粹了,甚至会对读者造成对技术内容的误解。

我没有能力去控制那些自媒体发布这些不实的内容,但是在我了解的范围内,还是尽力输出一些我的理解和思考。希望可以给这些误读内容不同的声音,能够引起读者的注意,从而希望大家可以多一些自己的思考。

当然,我的观点也不一定都是对的,所以不管读者看到什么内容,一定要保持自己的思考。当你发现网上有内容发生冲突的时候,唯一可以解决的方式不是选择一方去相信,还是要自己去深入研究,去验证哪一个观点才是正确的。

最后,声明一点:我不是Spring Cloud Alibaba的成员,也不是阿里系公司的员工。对于Spring Cloud Alibaba的支持,只是作为一名奋斗在一线的程序员所产生的思考。

如果您觉得我说的不对,非常欢迎留言讨论。

欢迎关注我长期连载的《Spring Cloud基础教程》


money.jpg

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

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

相关文章

聚焦信息抽取前沿难题,CCKS-千言通用信息抽取竞赛报名启动

转载公众号 | 百度NLP信息抽取旨在将非结构化文本中的信息进行结构化,是自然语言处理的基础技术和重要研究领域,一直受到学术界和工业界广泛关注。传统的信息抽取任务与评测通常针对特定的文本领域和单一的抽取任务,难以评估相关技术与方法在…

我有文章了,但也不想搞学术了

文 | 微调源 | 知乎又到了年底,跟大家简单唠唠2021年的收获(和失去)。在2020年的总结文章里(阿调x2020:爱、学术、钱与系统[1]),我最大的困扰可能是读博一年多却没什么主要成果的痛苦。好消息是…

LeetCode 829. 连续整数求和(数学)

1. 题目 给定一个正整数 N,试求有多少组连续正整数满足所有数字之和为 N? 示例 1: 输入: 5 输出: 2 解释: 5 5 2 3,共有两组连续整数([5],[2,3])求和后为 5。示例 2: 输入: 9 输出: 3 解释: 9 9 4 5 2 3 4示例 3: 输入: 15 输出: 4 解释: 15…

说说我为什么看好Spring Cloud Alibaba

最近对《Spring Cloud Alibaba基础教程》系列的催更比较多,说一下最近的近况:因为打算Spring Boot 2.x一起更新。所以一直在改博客Spring Boot专题页和Git仓库的组织。由于前端技术太过蹩脚,花了不少时间。大家不用担心,这个系列不…

【报名开启】CCKS2022技术评测任务七“化学元素知识图谱构建及应用”

任务描述:随着AI技术的发展和普及,药物研发也逐渐进入到AI时代,擅长处理大数据的AI深度学习技术,就成为近年来大家关注的焦点。化合物的性质预测的主要目的在于及时发现理化性质不达标的化合物,以降低候选化合物进入临…

LeetCode 12/13 罗马数字与整型互转(哈希,贪心)

文章目录1. 罗马数字转整型解题2. 整数转罗马数字解题1. 罗马数字转整型 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值 I 1 V 5 X 10 L 50 …

Facebook 推出多模态通用模型 FLAVA,吊打 CLIP 平均十个点!

文 | 子龙编 | 智商掉了一地厉害了!作者将单一模型运用于三个不同领域的不同任务,结构简单且训练直观,还能有着出色的表现。自Transformer横空出世,从NLP到CV,再到今天的多模态,无数基于Transformer的模型被…

Nacos配置中心原理

动态配置管理是 Nacos 的三大功能之一,通过动态配置服务,我们可以在所有环境中以集中和动态的方式管理所有应用程序或服务的配置信息。 动态配置中心可以实现配置更新时无需重新部署应用程序和服务即可使相应的配置信息生效,这极大了增加了系…

论文浅尝 | AI回答小学科学问题达到人类水平(OpenBookQA)

转载公众号 | 南大Websoft AI能否像人类一样学习掌握科学知识,理解运用常识知识,最终像人类一样参加并通过学科考试?近日,南京大学万维网软件研究组(Websoft)在人工智能评测集OpenBookQA上实现了突破&#…

LeetCode 1003. 检查替换后的词是否有效(栈)

1. 题目 给定有效字符串 “abc”。 对于任何有效的字符串 V,我们可以将 V 分成两个部分 X 和 Y,使得 X Y(X 与 Y 连接)等于 V。(X 或 Y 可以为空。)那么,X “abc” Y 也同样是有效的。 例…

论文浅尝 - IJCAI2022 | 基于自适应虚词增强的小样本逆关系分类

论文作者:窦春柳,天津大学,研究方向:知识图谱论文链接:http://arxiv.org/abs/2204.12111代码地址:https://github.com/DOU123321/FAEA-FSRC摘要小样本关系分类(Few-shot Relations Classificati…

Spring Cloud Alibaba与Spring Boot、Spring Cloud之间不得不说的版本关系

这篇博文是临时增加出来的内容,主要是由于最近连载《Spring Cloud Alibaba基础教程》系列的时候,碰到读者咨询的大量问题中存在一个比较普遍的问题:版本的选择。其实这类问题,在之前写Spring Cloud基础教程的时候,就已…

这个开源数据集要在全球扩大中文NLP影响力,你也能来做贡献!

源 | 机器之心编辑部千言的升级重点聚焦大模型时代的机遇和挑战。「千言」是由百度联合中国计算机学会、中国中文信息学会共同发起的面向自然语言处理的开源数据集项目,旨在推动中文信息处理技术的进步。近日,在 2021 年 12 月 12 日的 WAVE SUMMIT2021 …

LeetCode 676. 实现一个魔法字典(哈希)

1. 题目 实现一个带有buildDict, 以及 search方法的魔法字典。 对于buildDict方法,你将被给定一串不重复的单词来构建一个字典。 对于search方法,你将被给定一个单词,并且判定能否只将这个单词中一个字母换成另一个字母,使得所…

技术动态 | 北大邹磊:图数据库中的子图匹配算法

转载公众号 | DataFunTalk分享嘉宾:邹磊 北京大学 教授编辑整理:xiaomei出品平台:DataFunTalk导读:本次讲座从图数据库中的核心查询算子——子图匹配入题,介绍了图数据库的基本概念、子图匹配的算法,以及在…

Spring Cloud Alibaba基础教程:Nacos的数据持久化

前情回顾: 《Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现》《Spring Cloud Alibaba基础教程:支持的几种服务消费方式》《Spring Cloud Alibaba基础教程:使用Nacos作为配置中心》《Spring Cloud Alibaba基础教程&a…

盘点我跳过的科研天坑,进坑就是半年白干

文 | 白鹡鸰 and 小轶 祝大家新年快乐!去年白鹡鸰花了两个月,刷了八千篇Arxiv,结果发现很多论文存在一些比较“基本”的常见问题:研究问题和问题假设存在严重的漏洞,或者缺少充分的相关工作调研,导致所谓的…

LeetCode 553. 最优除法(数学)

1. 题目 给定一组正整数,相邻的整数之间将会进行浮点除法操作。例如, [2,3,4] -> 2 / 3 / 4 。 但是,你可以在任意位置添加任意数目的括号,来改变算数的优先级。你需要找出怎么添加括号,才能得到最大的结果&#…

论文浅尝 - ACL2022 | 子图检索增强的知识图谱问答方法

转载公众号 | 学术头条作者:张静(中国人民大学),张晓康(中国人民大学),于济凡(清华大学),唐建(魁北克人工智能研究所),唐杰…

Spring Cloud Alibaba基础教程:Nacos配置的多文件加载与共享配置

前情回顾: 《Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现》《Spring Cloud Alibaba基础教程:支持的几种服务消费方式》《Spring Cloud Alibaba基础教程:使用Nacos作为配置中心》《Spring Cloud Alibaba基础教程&a…