什么是微服务架构
微服务架构通常会与单体架构(Monolithic Style)进行比较。Web 应用程序发展的早期,大部分 Web工程是将所有的功能模块打包到一起部署和运行,例如 Java 应用程序打包为一个 war 包。在单体应用中,所有这些模块都被集成在一起,这样运行的系统就叫做单体应用。单体应用的优点是开发简单直接,集中式管理基本不会重复开发;功能都在本地,没有分布式的管理开销和调用开销。缺点也很明显,如开发效率低、代码维护难,稳定性和扩展性都存在不足。
微服务最早是由 Martin Fowler 与 James Lewis 于2014年共同提出。
原文:https://martinfowler.com/articles/microservices.html
微服务架构,是一种软件架构方式。微服务的主要特点体现在组件化、松耦合、自治和去中心化等方面。它将应用构建成一系列按业务领域划分模块的、小的自治服务,通过分解巨大单体式应用为多个服务方法解决了复杂性问题。每个服务还提供了一个严格的模块边界,甚至允许用不同的编程语言编写不同的服务。不过,微服务应用是分布式系统,由此会带来分布式系统固有的复杂性,包括测试、运维的复杂度。
单体与微服务
为了更好地理解微服务和设计微服务架构,借用网上几个比较经典的设计图辅助理解:
Spring Cloud 家族: