# 认识微服务

微服务是一种经过良好架构设计的分布式架构方案,微服务架构特征:

  • 单一职责:微服务拆分力度更小,每一个服务都对应唯一的业务能力,做到单一职责,避免重复业务开发。
  • 面向服务:微服务对外暴露业务接口。
  • 自治:团队独立、技术独立、数据独立、部署独立。
  • 隔离性强:服务调用做好隔离、容错、降级、避免级联现象。

# 面试题:

单体架构与分布式架构的区别?

  • 单体架构特点:简单方便,高度耦合,扩展性差,适合小型项目。例如:学生管理系统
  • 分布式架构特点:松耦合,扩展性好,但架构复杂,难度大。适合大型互联网项目,例如:京东,淘宝。

微服务:一种良好的分布式架构

  • 优点:拆分力度更小、服务更独立、耦合度更低
  • 缺点:架构非常复杂,运维、监控、部署难度提高

# 微服务结构

微服务这种方案需要技术框架来落地,全球的互联网公司都在积极尝试自己的微服务落地技术。在国内最知名的就是 SpringCloud 和阿里巴巴的 Dubbo。

image-20230830082645810

# 微服务技术对比

# 企业需求

# SpringCloud

  • SpringCloud 是目前国内使用最广泛的微服务架构。官网地址:Spring Cloud
  • SpringCloud 集成了各种微服务功能组件,并基于 SpringBoot 实现了这些组件的自动装配,从而提供了良好的开箱即用体验:

微服务技术体系

# 服务拆分与远程调用

服务拆分注意事项

  1. 不同微服务,不要重复开发相同业务
  2. 微服务数据独立,不要访问其他微服务的数据库
  3. 微服务可以将自己的业务暴露为接口,供其他微服务调用

# 微服务远程调用

提供者与消费者

  • 服务提供者:一次业务中,被其他为服务调用的服务。(提供接口给其他微服务)

  • 服务消费者:一次业务中,调用其他为服务的服务。(调用其他微服务提供的接口)