8

老狗咬咬乐-SpringCloud前生今世

 2 years ago
source link: http://www.veiking.cn/blog/1073-page.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

老狗咬咬乐-SpringCloud前生今世_老狗啃骨头_Veiking百草园-知识点滴,日常分享


很久以前,一门叫java的编程语言面世,据说当时创派祖师爷们是喝着爪哇岛产咖啡苦思冥想所悟,所以时至今日,这门编程语言的图腾,还是一杯冒着热气儿的咖啡。不久后EJB应运而生,拉开了J2EE的序幕,但好景不长,EJB起初精心设计,却因其相对复杂和笨重招来不少非议,最后存亡之秋,J2EE信徒没有放弃,精诚石开,最终Spring横空出世,展开新的篇章

很久很久以前,一门叫java的编程语言面世,据说当时是创派祖师爷们是喝着爪哇岛产咖啡苦思冥想所悟得,所以时至今日,这门编程语言的图腾,还是一杯冒着热气儿的咖啡,这是陈年故事,暂且不絮。

不久之后,编程语言各门派鱼龙混杂、此起彼伏乱战不止,java派系为了和PHP、ASP等在服务器端语言方面博得一席之地,EJB(Enterprise Java Beans)应运而生,从此拉开了属于java语言的J2EE(Java 2 Platform Enterprise Edition)世纪。

斗转星移,寒来暑往,随着EJB的茁壮成长,J2EE迅速发展,逐渐成为江湖上广泛认可的行业标准;但由于技术的快速的迭代和生长,EJB起初精心设计从技术结构方面的理想,在经历了早期的兴奋之后,因其相对复杂和笨重,直接使慕名而来的信徒望而却步,甚至招来不少非议,一时尽是英雄落魄、鲜花迟暮,令人唏嘘。

值此危急之秋,J2EE信徒没有放弃,另立新坛,然后取他山之石,凿山引渠,在杂草山林挖得一泉;那年春天百花争艳,信徒们在泉水旁彻夜叨念,终得一秘籍奥义,这便是Spring框架的由来。

EJB是基于分布式事务处理的企业级应用程序的组件。早期的EJB考虑的足够周全详尽,在J2EE标准的逐渐完善的成长过程中,EJB迅速的暴露出其复杂笨重的问题,虽然功能强大可圈可点,但仍挡不住各种恶评接踵而至。绕开官方这种尴尬的境地,民间编程爱好者们发起了一场旨在使用 “轻量级”技术以代替复杂的EJB的运动,Spring框架就是在这种背景下诞生的。

经历了一系列的发展和进化,今天的Spring框架主要由这几部分组成:分别是 Spring Core、 Spring AOP、 Spring ORM、 Spring DAO、Spring Context、 Spring Web和 Spring Web MVC等。除此之外,Spring还用非常欢迎的姿态拥抱各种优秀的开源框架,提供对各种优秀框架(如Struts、Hibernate、Hessian、Quartz、security等)的直接支持,降低开发者使用各种框架的技术难度

Spring的诸多优点这里暂不赘述,但随着技术环境的日新月异,昔日Spring框架曾颇为得意的xml配置,都略显古板繁复,于是,一个叫Pivotal的团队,在2014年发布了一套整合方案,即为SpringBoot框架。

SpringBoot框架本身并不是单纯的技术框架,而更像是一套技术方案:内置Tomcat或Jetty等Servlet容器,提供好一些普遍的检查和配置;然后借助Maven或Gradle等版本管理插件,直接创建可执行的JARs和WARs。这里尤其是借助Maven之类的管理插件,使得各种优秀框架与Spring框架的结合直接开箱即用:在pom文件中添加相关依赖包,即可直接使用其技术方案,这点使开发人员几乎摆脱了复杂的配置和管理依赖的工作,更加专注于业务逻辑。而SpringBoot便捷的打包,则与日渐兴起的微服务不谋而合,将优秀的Spring框架带入到更大的游戏场地。

SpringBoot使得基于Spring框架的开发更为便利,各种结合于此的基础设施开发能够迅速开展并能够一键启动和部署,百尺竿头更进一步,SpringCloud即诞生了。

岔一下,SpringCloud这个名字极具误导性,一个cloud即让许多前辈迷迷糊糊晕到什么云啊神神叨叨的东西上去了,其实它当初如果起名SpringGroup,可能更为贴切。是的,SpringCloud就是协助提供一组框架集合,即一套相对完整的技术方案集合,像服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控啊这些,利用SpringBoot即已经可以做到一键启动和部署,SpringCloud在此基础上通过对SpringBoot的技术模式打包,将这些比较成熟、经得起实际考验的服务框架再有机组合,进一步做技术方案封装,屏蔽掉了复杂的配置和操作,最终给开发者提供一套简单易懂、易部署和易维护的分布式系统开发工具包,这就是SpringCloud的真面目!

Spring Cloud对于中小型互联网公司来说无疑是一种福音,因为这类公司往往没有实力或者没有足够的资金投入去开发自己的分布式系统基础设施,使用Spring Cloud一站式解决方案能在从容应对业务发展的同时大大减少开发成本。同时,随着近几年微服务架构和Docker容器概念的火爆,也会让Spring Cloud在未来越来越“云”化的软件开发风格中立有一席之地,尤其是在五花八门的分布式解决方案中提供了标准化的、全站式的技术方案,意义甚至堪比当年servlet规范的诞生,有效推进服务端软件系统技术水平的进步。

接下来,我们就揭开SpringCloud的面纱,进行学习总结。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK