Spring Cloud 快速入门系列之开篇–理解微服务

为什么要用微服务

如果我们的系统是一个小项目,这里所说的小项目是指用户量、业务量、代码开发量都不大,那么我将所有业务逻辑都写在一个项目中是没有问题的。但是如果你要开发一个中大项目,还将项目所有子系统、功能模块都写在一个项目中,那么将来部署的项目可能会是一个庞大的war包(war包是Java中的web项目的部署包)。这可能在项目上线初期没有太大问题,但是随着你的系统用户量暴增,系统数据也呈指数增长,各种需求纷至沓来,众多程序员就在这一个项目上同时开发各种功能,你会发现,开发难度越来越大,系统越来越慢,各种问题层出不穷,经常是改了东边的问题,西边除了bug。这就是传统项目在发展到一定规模后遇到的问题:所有功能都耦合在一个项目中,修改难度大,开发成本高,部署一个项目所需要的硬件资源就非常高(因为每个项目都部署了几千甚至上万个功能点),运维成本也随之升高,所以这时候就需要对架构进行升级。

微服务,这本身是一个架构上的概念,所谓微服务,就是将原本的一个大项目,按照功能模块进行拆分,拆成业务和功能相对专一的一个个小服务,每个服务只提供一部分功能,各个小服务单独部署,独立运行。这就是微服务。

为什么选择spring cloud来作为微服务架构

spring cloud是基于spring boot实现的微服务框架工具包,基于spring boot的项目生成、开发、部署的便捷性,spring cloud提供了微服务中所需要的各种组件,包括服务治理、断路器、路由器、控制总线、负载均衡等等功能。

同时因为出自spring cloud,学习文档丰富,版本不断更新,是目前应用最广泛的微服务架构之一。

spring cloud的主要功能有哪些

  • 发现服务
  • 配置服务
  • 网关服务
  • 复杂均衡
  • 服务熔断
  • 服务安全
  • 分布式消息
  • 分布式跟踪

接下来将用几节课程,让你快速入门spring cloud,能够掌握spring cloud的使用。