Spring Cloud介绍

Spring Cloud是什么?

Spring Cloud是一个主流的微服务框架。微服务的概念源于2014年3月Martin Fowler所写的一篇文章Microserviceshtml

微服务是一种解决复杂应用的架构模式。它的理念是将复杂应用拆分红一个个微小的服务,每一个服务运行在独立的环境(进程、虚拟机、容器等)中,彼此之间互不干扰,独立开发,独立构建和部署。最终集成在一块儿,相互协调,为用户提供价值。web

微服务框架能够为这些微小的服务提供统一的管理和必要的工具,使它们更易于开发和维护。spring

为何须要微服务?

微服务解决了什么痛点?你的应用到底需不须要微服务?架构

首先,若是对于业务简单、并发量较小的应用来讲,实际上是不须要使用微服务架构的,好比一些小的网站。但对于复杂的大型应用来讲,是推荐使用微服务的。先来看看一个大型的单体应用可能有哪些痛点?并发

  • 全部代码集成到一个项目,任何业务修改都须要从新部署整个项目
  • 一个项目里面的代码量太大,难以管理,很难重构,出了BUG也很难排查
  • 全部业务逻辑都在一个项目,测试量很大,每次都须要跑好久测试
  • 难以水平扩展,很难处理突发流量激增的状况。

在微服务概念出现之前,有的团队为了解决上述痛点,开始使用“分布式系统”的理念去设计系统。负载均衡

把应用拆成一个个小的应用,独立开发和部署。但因为缺少统一的服务治理工具,因此须要集成一些外部的工具来完善这个系统。好比负载均衡、权限网关、路由、配置管理、状态监控等等工做都得本身作或者使用其它软件。这在必定程度上其实也增长了复杂性,尤为是运维的复杂性。框架

为何使用Spring Cloud?

Spring Cloud流行之前,其实已经有一些微服务解决方案。使用最普遍的就是阿里的Dubbo了。但Dubbo只提供了一些基础的功能,有点相似于上面提到的“分布式系统”的升级版,还不具有一个完善的微服务框架的功能。因此Dubbo每每也须要与其余框架进行集成,好比使用Zookeeper进行服务注册和发现。运维

Spring Cloud是Spring团队开发和维护,具备更完善的功能、更快的迭代速度、用户更多的特色。因此Spring Cloud是企业开始使用微服务的一个很好的技术选型。分布式

还有最近比较火的Service Mesh的概念,被称为“下一代微服务”,它具备更先进的设计理念,把服务划分为一个个服务网格,而且架构更抽象,使得开发和运维分离,开发人员不须要学习太多的微服务知识即可以实现微服务。有兴趣的读者能够去了解一下Service Mesh,应该是之后的趋势。后续我可能也会学习Service Mesh并写点文章。svg

但身为一个开发人员,我认为仍是有必要去学习一下Spring Cloud,可让咱们更深刻地了解一些微服务的设计理念。以前也学习过Spring Cloud,但不够系统和深刻。此次从新学习一遍,配合文章加深本身的理解。

因此最近会写一些Spring Cloud系列的文章,把本身所学的东西分享出来,欢迎关注。

官网