首页 > 技术文章 > 微服务

watchfluture 2017-05-15 18:14 原文

首先要说明的是微服务(Microservice)是一个架构模式,而不是一个特定的技术解决方案。其并不会将开发中的各个难点全部转移,而只是允许通过更为合适的技术来适当简化单个子服务的开发,或者绕过开发中可能遇到的部分难点。

微服务(Microservice)架构模式就是将整个Web应用组织为一系列小的Web服务。这些小的Web服务可以独立地编译及部署,并通过各自暴露的API接口相互通讯。它们彼此相互协作,作为一个整体为用户提供功能,却可以独立地进行扩容。

为了便于理解,请看下面两张图:

传统服务架构:

 

这种设计方法将导致实现业务逻辑的所有组件都运行在同一个进程之内,并且各个业务逻辑的实现也在同一个进程之内运行。

微服务架构:

 

将需要实现的功能分割成为一系列组件之前,我们首先需要考虑如何将需要实现的功能交由彼此相互独立的一系列服务来完成。如上图,将原本1个服务分为3个,运行在3个进程中。

在使用Microservice架构模式的情况下,软件开发人员可以通过编译并重新部署单个子服务的方式来验证自己的更改,而不再需要重新编译整个应用,从而节省了大量的时间。同时由于每个子服务是独立的,因此各个服务内部可以自行决定最为合适的实现技术,使得这些子服务的开发变得更为容易。最后如果当前系统的容量不够了,那么我们只需要找到成为系统瓶颈的子服务,并扩展该子服务的容量即可。

推荐阅读