1.2 关于微服务
1.2.1 什么是微服务
ThoughtWorks 公司的首席科学家 Martin Fowler说 :
简而言之,微服务架构风格是一种将单个应用程序作为一套小型服务开发的方法,每种应用程序都在自己的进程中运行,并与轻量级机制(通常是HTTP资源API)进行通信。 这些服务是围绕业务功能构建的,可以通过全自动部署机制独立部署。 这些服务的集中管理最少,可以用不同的编程语言编写,并使用不同的数据存储技术。
James Lewis 和 Martin Fowler说:
简言之,Microservices 架构风格就像是把小的服务开发成单一应用的形式, 运行在其自己的进程中,并采用轻量级的机制进行通信(一般是 HTTP 资源 API)。这些服务都是围绕业务能力来构建,通过全自动部署工具来实现独立部署。这些服务,其可以使用不同的编程语言和不同的数据存储技术,并保持最小化集中管理。
1.2.2 微服务的特点
- 独立部署,灵活扩展:传统的单体架构是以整个系统为单位进行部署,而微服务则是以每一个独立组件为单位进行部署。
- 资源的有效隔离:每个微服务拥有独立的数据源,假如微服务A想要读写微服务B的数据库,只能调用微服务B对外暴露的接口来完成,有效避免了服务之间争用数据库和缓存资源所带来的问题。
- 按业务组织团队:微服务的设计思想也改变了原有的企业研发团队组织架构。传统的