一、微服务的定义
定义一
- 微服务是一种架构风格,将单体应⽤用划分成一组小的服务,服务之间相互协作,实现业务功能
- 每个服务运行在独⽴立的进程中,服务间采⽤轻量级的通信机制协作(通常是HTTP/ JSON)
- 每个服务围绕业务能力进行构建,并且能够通过自动化机制独立地部署 很少有集中式的服务管理,每个服务可以使用不同的语言开发,使⽤不同的存储技术
参考:https://www.martinfowler.com/articles/microservices.html
定义二
- Loosely coupled service oriented architecture with bounded context
- 基于有界上下文的,松散耦合的面向服务的架构
二、什么是微服务架构
- 由一组小的服务组成,例如将单体架构应用进行拆分成多块小的独立服务,服务有多小具体看业务进行划分。
- 每个服务都是运行在独立的进程之中,以进程的方式去进行横向扩展。
- 服务之间的通信方式是轻量级的,例如HTTP协议、RPC协议。
- 一般要基于业务能力来构建微服务。
- 每块服务都是能独立部署,团队之间不用太多协调,支持快速迭代。
- 无集中式管理,每个团队管理的服务可以根据业务需要来选择相应技术栈。
- 服务之间是松散耦合的,没有强依赖,微服务基于有界上下文,每个团队有独立的数据源,独立的去演化自己的服务。
问题:
- 微服务独立部署以后给业务带来了什么好处?
- 在分布式系统中,当每个团队都有独立的数