前言
2014年Martin Fowler正式提出了“微服务”的概念:微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务和服务间采用轻量级的通信机制互相沟通(通常是基于 HTTP 的 RESTful API)。每个服务都围绕着具体业务进行构建,并且能够被独立地部署到生产环境、类生产环境等。另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下 文,选择合适的语言、工具对其进行构建。
Martin Fowler,软件开发领域教父级人物,ThoughtWorks首席科学家,著有《重构:改善既有代码的设计》《分析模式:可复用的对象模型》《领域特定语言》《企业应用架构模式》等经典著作,敏捷开发方法论开创者,微服务概念提出者**。**
一、单体架构与微服务架构
1、单体架构
一个单体系统是一个大而全的功能集合,每个服务器运行的是这个应用的完整服务。一个应用所有的功能都在一个工程项目里面,项目中的classes、jsp、css、js等前后端资源最终都归档为一个war包部署到服务器。