引言

  

  微服务这个词的热度自它出现以后,就一直是高烧不退,而微服务之所以这么火,其实和近几年互联网的创业氛围是分不开的。

  与传统行业不同,互联网企业有一个特点,那就是市场扩张速度非常之快,可能也就是几天的时间,一家原本名不经传的互联网公司就会人尽皆知,一家独角兽公司也就诞生了。

  而伴随着这些,接踵而来的,一般是业务的急速变化与规模的扩张,这就对应用应对变化的能力提出了更高的要求。

  微服务,就是专门治疗这种情况的良药。

  也因此,现在的绝大多数互联网公司,都逐渐引入了微服务架构,以便于应对发展越来越快的公司业务。

  如今程序员聊天,尤其是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 Cloud provides tools for developers to quickly build some of the common patterns in distributed systems.Coordination of distributed systems leads to boiler plate patterns, and using Spring Cloud developers can quickly stand up services and applications that implement those patterns. They will work well in any distributed environment, including the developer's own laptop, bare metal data centres, and managed platforms such as Cloud Foundry.

  笔者翻译:Spring Cloud提供了一些工具,可以让开发者快速构建基于一些通用模式的分布式应用。分布式应用的协调都遵循“锅炉板模式”(boiler plate patterns),使用Spring Cloud以后,开发者可以更快的构建实现了这些模式的服务和应用。而这些服务和应用,也可以很好的工作在任何分布式环境,包括开发者自己的笔记本,裸金属数据中心以及像Cloud Foundry这样的托管平台。

  和Spring团队以往的做法相似,不管是之前的Spring Framework,还是后来的Spring Boot,Spring团队一直在致力于让开发者可以“更快更好”的做开发。

  这也是为何Spring团队在开发者圈子里口碑一直很好,是因为Spring团队一直在为开发者服务,而且都是开源项目,可以说,Java之所以能这么火,Spring团队功不可没。

  一波隐晦的商业互捧之后,咱们来具体谈一谈,Spring Cloud到底都提供了哪些工具。

  从Spring Cloud官方文档里,我们可以摘取到Spring的核心功能。

Distributed/versioned configuration【分布式以及版本化的配置】

Service registration and discovery【服务注册与发现】

Routing【路由】

Service-to-service calls【服务调用】

Load balancing【负载均衡】

Circuit Breakers【断路器】

Distributed messaging【分布式消息】

  不难发现,其实上面这些功能,就是开发微服务架构下的分布式应用,会经常用到的。

  不过,Spring团队厉害的地方就在于,他们很少会重复造轮子,而是让别人帮他们来造轮子。

  比如最早的Spring framework,Spring只是提供了IOC和AOP的核心功能,而具体的MVC框架、ORM框架、缓存等等,Spring都只是提供了很好的支持和兼容,并不会去自己实现一个。

  当然,除非是对方做的不够好,比如Spring MVC,就是因为当初的Struts2有着诸多的缺陷,才应运而生,并且很快就替代掉了Struts2,成为了主流的MVC框架。

  同样,Spring Cloud也是如此,Spring Cloud的核心并没有实现任何上述功能,让我们来看看Spring Cloud官方文档的一段介绍。

  Many of those features are covered by Spring Boot, on which Spring Cloud builds. Some more features are delivered by Spring Cloud as two libraries: Spring Cloud Context and Spring Cloud Commons. Spring Cloud Context provides utilities and special services for the ApplicationContext of a Spring Cloud application (bootstrap context, encryption, refresh scope, and environment endpoints). Spring Cloud Commons is a set of abstractions and common classes used in different Spring Cloud implementations (such as Spring Cloud Netflix and Spring Cloud Consul).

  笔者翻译:

  这些功能(就是上面列举的功能)大部分是由Spring Boot覆盖的,而Spring Cloud基于Spring Boot构建。Spring Cloud作为两个libraries提供了更多的功能。这两个libraries分别是,Spring Cloud Context和Spring Cloud Commons。

  其中Spring Cloud Context提供了一些工具,以及一个Spring Cloud应用的ApplicationContext的特殊服务,比如bootstrap上下文(关于这个家伙,后面有机会笔者会详细介绍)、加密、刷新、环境端点这些功能。

  而Spring Cloud Commons则是一组抽象和在不同Spring Cloud实现(比如Spring Cloud Netflix和Spring Cloud Consul)中使用的通用类。

  可以看出,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版本所支持的功能列表。

  开源组件(spring-cloud-alibaba开头):

  •   服务发现(Service Discovery)
  •   配置管理(Configuration Management)
  •   高可用防护(Safeguarding for High Availability)

  商业服务(spring-cloud-alicloud开头):

  •   服务发现(ANS——Application Naming Service)
  •   配置管理(ACM——Application Configuration Management)
  •   对象存储服务(OSS——Object Storage Service)

  同时,接下来的时间里,SCA还会以最快的速度支持以下功能。

  开源组件(spring-cloud-alibaba开头):

  •   消息队列(RocketMQ)

  商业服务(spring-cloud-alicloud开头):

  •   任务调度(SchedulerX)
  •   日志服务(SLS)

  

结语

  

  写到这里,笔者该吹的基本上都吹完了。

  其实写了这么多,归根结底笔者就是想说一句话,Spring Cloud Alibaba正式发布第一版到maven中央库,已经可以正式开始使用了哦,具体的可以到我们的GITHUB主页查看,https://github.com/spring-cloud-incubator/spring-cloud-alibaba。

  笔者大概能猜到,你们此时的内心独白,或许是这样的。

  “我信你个鬼,你个死作者坏得很,害我看了这么多废话。”

  笔者只想告诉你,若干年以后,你一定会庆幸你看了这篇文章,让你知道了Spring Cloud Alibaba。

微服务领域是不是要变天了?Spring Cloud Alibaba正式入驻Spring Cloud官方孵化器!...相关推荐

  1. 微服务领域是不是要变天了?Spring Cloud Alibaba正式入驻Spring Cloud官方孵化器!

    引言 微服务这个词的热度自它出现以后,就一直是高烧不退,而微服务之所以这么火,其实和近几年互联网的创业氛围是分不开的. 与传统行业不同,互联网企业有一个特点,那就是市场扩张速度非常之快,可能也就是几天 ...

  2. 微服务领域,为什么选SpringCloud而不是Dubbo?

    Spring Cloud作为一套微服务治理的框架,几乎考虑到了微服务治理的方方面面,之前也写过一些关于Spring Cloud文章,主要偏重各组件的使用,本篇主要解答这两个问题:Spring Clou ...

  3. 2020 年微服务领域开源数字化报告发布,阿里扛起微服务大旗

    2020 年 8 月 18 日,由阿里云主办的首届云原生微服务大会于线上隆重召开,大会邀请25位全球顶级球微服务领域先行者和权威技术专家深入探讨云原生语境下,微服务的挑战和趋势. 国产微服务框架表现抢 ...

  4. 一个困扰程序员很多年的问题:微服务领域SpringCloud这么火,为何还要学习SpringCloud Alibaba?

    大家好,我是冰河~~ 大家都知道,SpringCloud Alibaba是在SpringCloud基础上开发并开源的一套微服务架构体系.那么,肯定会有小伙伴要问:在微服务领域,SpringCloud已 ...

  5. redis在微服务领域的贡献

    前言 说到redis,可能大家的脑海中蹦出的关键词是:NoSQL.KV.高性能.缓存等.但今天的文章从另一个角度--微服务来展开. 这篇文章的起因也是源自一次面试经历,在面试一位来自陌陌的候选人(就是 ...

  6. Spring Cloud Alibaba | Dubbo 与 Spring Cloud 完美结合

    https://www.cnblogs.com/babycomeon/p/11546737.html Spring Cloud Alibaba | Dubbo 与 Spring Cloud 完美结合 ...

  7. 微服务网关哪家强?一文看懂Zuul, Nginx, Spring Cloud, Linkerd性能差异

    导语:API Gateway是实现微服务重要的组件之一.面对诸多的开源API Gateway,如何进行选择也是架构师需要关注的焦点.本文作者对几个较大的开源API Gateway进行了压力测试,对于架 ...

  8. 分布式和微服务_太难了!阿里三面凉透~ Spring+高并发+算法+分布式微服务等等一个都没讲不清...

    以下来自粉丝投稿: 三面大概九十分钟,问的东西很全面,需要做充足准备,就是除了概念以外问的有点懵逼了(呜呜呜~).回来之后把这些题目做了一个分类并整理出答案(强迫症的我~狂补知识~)分为spring+ ...

  9. 微服务(三) 【手摸手带你搭建Spring Cloud】 Ribbon 什么是负载均衡?spring cloud如何实现负载均衡?ribbon负载均衡有几种策略?Ribbon是什么?

    在上一章,我介绍了springcloud的eureka搭建.我们做了服务注册.最后我们还介绍了一些续约,失效剔除等参数配置.已经不需要再通过手动输入ip去访问服务,而是通过中心只需要通过服务名就可以获 ...

  10. Camunda将工作流引擎引入到微服务领域

    今天,工作流程自动化的软件公司Camunda宣布,Zeebe的第一个生产就绪版本现在可以作为免费的社区版下载. Zeebe是一个为云架构而构建的现代工作流引擎,可提供对跨多个微服务的工作流的可见性和控 ...

最新文章

  1. C# 操作redis
  2. centos7 安装mysql5.6_centos7安装mysql5.6
  3. 017 包扫描器和标记注解
  4. wget: unable to resolve host address “http”
  5. PyTorch基础(part4)
  6. 连接远程电脑中的虚拟机---端口映射
  7. 【牛客 - 317C】小a与星际探索(背包dp 或 线性基)
  8. 你与产品经理之间差的才不只是一段代码!
  9. 小程序二维码生成器在线制作_在线二维码生成器怎么挑?
  10. (C++)String的用法
  11. libtool: Version mismatch error. This is libtool 2.4.6, but the definition of this LT_INIT
  12. 邯郸市计算机中专学校地址,邯郸蓝天信息工程中专学校
  13. PHP连接mysql原生代码
  14. 08.音频系统:第004课_Android音频系统详解:第002节_以例子说明几个重要概念
  15. 工作内存与主内存是什么,硬件层面的存储架构是什么样,线程的实现原理是什么
  16. 你想成为阿里巴巴的一名数据工程师吗?以下的应聘要求你得好好看了
  17. 软件质量与测试--第六周作业 软件测试与评估
  18. 大数据入门-什么是Kudu
  19. cat /etc/sysconfig/network-scripts/ifcfg-ens33
  20. 又一个!左手手机,右手汽车,为啥手机厂商都扎堆造汽车?

热门文章

  1. Atitit it法学论 uke协会it刑法attilax总结 目录 1. 法学plus 1 1.1. 替换表 1 2. 第一章 刑法概说 1 2.1. 财产 1 3. Line 65: 第四章 犯
  2. Atitit 理财之道 attilax著 1. 融资 3 1.1. 融资账户余渠道 3 2. 风控 3 3. 3 4. 投资 3 5. 线上财富与资源 3 5.1. Jd流量 飞猪流量 3 5.
  3. Atitit 卡片管理指南规范 attilax总结(内部身份卡,饭卡,交通卡 银行卡等)
  4. Atitit 贝叶斯算法的原理以及垃圾邮件分类的原理
  5. atitit.词法分析原理 词法分析器 (Lexer)
  6. paip.提升开发效率--使用拼音
  7. paip.ASP加密新总结
  8. 投资为什么很难进步——越不懂 越自信︱投资道
  9. 创金合信: 做的这些事
  10. (转)JD-Quant量化交易平台设计:延迟latency