三分钟了解微服务

微服务到底是什么?

微服务是一种架构风格!

这种框架用于开发时,必须是一系列小服务组成,然后通过http或rpc方式互通。

说了等一白说, 为了更深刻了解,下面先来与过去的架构对比,如mvc架构,mvvm前端架构。

mvc架构和微服务架构的区别

mvc架构对于程序员来说都不陌生,这是一种所谓的单体应用架构(all in one),将应用中的所有服务都封装在一个应用中(war包)。

这样做也有好处,方便开发和测试,部署也方便(相对于微服务架构),但也适用于小的应用开发,拓展时,只需要将war包复制到多个服务器上,做负载均衡即可。

但是也有很多坏处,比如修改升级服务,都需要停掉整个服务,重新打包部署,非常浪费时间以及资源,况且这种架构下开发不利于多人开发和维护,提别是面对网站应用规模不断扩大,这种框架已经无法支撑了。


这时候微服务就像一个天降猛男,拳打mvc,脚踢程序员。打破了all in one的框架方式,将每个功能元素独立出来动态组合,需要的功能会组合在一起,不需要的功能则不会组合,这样比all in one的整个应用复制效率更高,更加节省资源,并且利于替换,独立升级功能。引用一张提出者Martin Fowler的图

maven 多模块 微服务 架构 maven多模块和微服务的不同_分布式

左边这是单体架构,所有功能放在一起,而右边是微服务架构,所有功能独立。


构建微服务架构

其实现在构建微服务框架很简单,因为Spring全家桶给我们带来的了整套服务 : (

  • 构建一个独立功能的微服务应用单元,可以用SpringBoot
  • 分布式网络服务调用,可以用SpringCloud

以上就是文章全部内容了,如果想更深入了解,可以参考微服务架构提出者Martin Fowler的论文,里面详细说明了微服务。