微服务(Microservice)是近两年来非常火的概念,它的含义是:使用定义好边界的小的独立组件来做好一件事情。微服务是相对于传统单块式架构而言的。
单块式架构是一份代码,部署和伸缩都是基于单个单元进行的。它是优点是易于部署,但是面临着可用性低、可伸缩性差、集中发布的生命周期以及违反单一功能原则(Single Responsibility Principle)。微服务的出现解决了这个问题,它以单个独立的服务来做一个功能,且要做好这个功能。但使用微服务不可避免地将功能按照边界拆分为单个服务,体现出分布式的特征,这时每个微服务之间的通信将是我们要解决的问题。
Spring Cloud的出现为我们解决分布式开发常用到的问题给出了完事的解决方案。Spring Cloud基于Spring Boot,为我们提供了配置管理、服务发现、断路器、代理服务等我们在做分布式开发时常用问题的解决方案。
基于Spring Cloud开发的程序特别适合在Docker或者其他专业PaaS(平台即服务,如Cloud Foundry)部署,所以又称作原生云应用(Cloud Native Application)