引言
微服务这个词的热度自它出现以后,就一直是高烧不退,而微服务之所以这么火,其实和近几年互联网的创业氛围是分不开的。
与传统行业不同,互联网企业有一个特点,那就是市场扩张速度非常之快,可能也就是几天的时间,一家原本名不经传的互联网公司就会人尽皆知,一家独角兽公司也就诞生了。
而伴随着这些,接踵而来的,一般是业务的急速变化与规模的扩张,这就对应用应对变化的能力提出了更高的要求。
微服务,就是专门治疗这种情况的良药。
也因此,现在的绝大多数互联网公司,都逐渐引入了微服务架构,以便于应对发展越来越快的公司业务。
如今程序员聊天,尤其是Java后端猿,你要不怼上几句微服务,你都不好意思说话。
而就在今天,2018年10月31日的凌晨,这个伟大的日子里,Spring Cloud Alibaba正式入驻了Spring Cloud官方孵化器,并在maven中央库发布了第一个版本。
可能有的同学会问,为啥要选在凌晨发布?难道是因为更有仪式感吗?
笔者很负责的告诉你,非也,是因为美国特么的和咱们有时差,-_-。
聊聊Spring Cloud
说起微服务这个话题,就不得不提到Spring Cloud以及Spring这个神奇的团队。
笔者个人一直是Spring团队的脑残粉,这不仅仅是因为Spring团队开源的情怀,更是因为,Spring团队的代码,是唯一让笔者觉得挑不出什么毛病的代码。
这在程序员身上是很难发生的,尤其是笔者这种有点代码洁癖的人,因为程序员有个特点,那就是看谁的代码都是垃圾,包括从前的自己都不例外。
这也从侧面说明了Spring团队的强大,以及他们的工匠精神。
好了,这一波马屁拍完,该来谈谈Spring Cloud了。
Spring Cloud是什么?
很多人虽然在用Spring Cloud,但其实并不了解Spring Cloud到底是什么,只知道开发微服务,可以选择使用Spring Cloud。
咱们首先来看看Spring Cloud官方的介绍,其实这一句话基本说出了Spring Cloud的本质。
和Spring团队以往的做法相似,不管是之前的Spring Framework,还是后来的Spring Boot,Spring团队一直在致力于让开发者可以“更快更好”的做开发。
这也是为何Spring团队在开发者圈子里口碑一直很好,是因为Spring团队一直在为开发者服务,而且都是开源项目,可以说,Java之所以能这么火,Spring团队功不可没。
一波隐晦的商业互捧之后,咱们来具体谈一谈,Spring Cloud到底都提供了哪些工具。
从Spring Cloud官方文档里,我们可以摘取到Spring的核心功能。
不难发现,其实上面这些功能,就是开发微服务架构下的分布式应用,会经常用到的。
不过,Spring团队厉害的地方就在于,他们很少会重复造轮子,而是让别人帮他们来造轮子。
比如最早的Spring framework,Spring只是提供了IOC和AOP的核心功能,而具体的MVC框架、ORM框架、缓存等等,Spring都只是提供了很好的支持和兼容,并不会去自己实现一个。
当然,除非是对方做的不够好,比如Spring MVC,就是因为当初的Struts2有着诸多的缺陷,才应运而生,并且很快就替代掉了Struts2,成为了主流的MVC框架。
同样,Spring Cloud也是如此,Spring Cloud的核心并没有实现任何上述功能,让我们来看看Spring Cloud官方文档的一段介绍。
可以看出,Spring Cloud其实是一套规范,而不是一个可以拿来即用的框架,而Spring Cloud Netflix以及Spring Cloud Consul,才是Spring Cloud规范的实现。
当然了,从今天开始,Spring Cloud的实现又多了一种,Spring Cloud Alibaba,-_-。
那么,接下来,咱们就来谈谈Spring Cloud Alibaba。
让微服务领域变天的Spring Cloud Alibaba
文章的标题起的有点欠抽,不过笔者本人始终信奉一句话,管它三七二十一,先吹了再说,-_-。
看过前面内容的同学,应该已经非常清楚的知道,Spring Cloud Alibaba和Spring Cloud的关系,Spring Cloud Alibaba(以下简称SCA)和Spring Cloud Netflix(以下简称SCN)一样,都是Spring Cloud规范的一套实现。
为什么笔者要扯上SCN?
因为所谓的“变天”,其实就和SCN有关。
虽然这句话说出来可能火药味有点浓,但笔者还是要说,SCA的宗旨,就是要替代SCN,成为Spring Cloud规范的默认实现方案,有种宫廷剧嫔妃争宠的既视感,-_-。
为什么笔者会有如此信心?这其实并不是盲目的自信,而是有据可依的。
首先,不得不承认的是,目前绝大多数的Spring Cloud开发者,使用的都是SCN,但这些开发者大部分都有一个特点,那就是规模和流量都较小,一般能有20个微服务左右的规模,已经算是比较大的了。
但是SCA中的组件,基本都是由阿里内部中间件转化而来,经历过多次双十一的考验,这也就意味着,SCA有着充足的场景,验证了它对于高并发的抗压能力。
当然了,SCN或许也有这样的客户,只是笔者不知道而已,但这并不妨碍SCA的强大,因为十几亿人口的大国,全世界都没有几个,而中国是其中一个,因此,双十一所面对的流量高峰,足以让全世界颤抖。
此外,仅从国内来说,SCA在地域和语言上也有着绝对的优势,毕竟,SCA有中文文档,而相信绝大多数没有自虐倾向的程序员,还是更倾向于看中文文档,而不是英文吧,-_-。
最后,从各个组件上来说,SCA也有很多优势,不过因为内容太多,此处不再详表,后续笔者会专门写文章去逐个组件对比介绍。
因此,笔者对SCA的未来还是非常看好的。
不过说了这么多,有的同学可能要抱怨了,“我信你个鬼,你这个死作者坏得很,只顾吹牛,SCA到底都有啥啊?到现在都没说。”
咳咳,接下来,笔者就简单罗列下,当前SCA版本所支持的功能列表。
同时,接下来的时间里,SCA还会以最快的速度支持以下功能。
结语
写到这里,笔者该吹的基本上都吹完了。
其实写了这么多,归根结底笔者就是想说一句话,Spring Cloud Alibaba正式发布第一版到maven中央库,已经可以正式开始使用了哦,具体的可以到我们的GITHUB主页查看,https://github.com/spring-cloud-incubator/spring-cloud-alibaba。
笔者大概能猜到,你们此时的内心独白,或许是这样的。
“我信你个鬼,你个死作者坏得很,害我看了这么多废话。”
笔者只想告诉你,若干年以后,你一定会庆幸你看了这篇文章,让你知道了Spring Cloud Alibaba。