# 认识微服务
微服务是一种经过良好架构设计的分布式架构方案,微服务架构特征:
- 单一职责:微服务拆分力度更小,每一个服务都对应唯一的业务能力,做到单一职责,避免重复业务开发。
- 面向服务:微服务对外暴露业务接口。
- 自治:团队独立、技术独立、数据独立、部署独立。
- 隔离性强:服务调用做好隔离、容错、降级、避免级联现象。
# 面试题:
单体架构与分布式架构的区别?
- 单体架构特点:简单方便,高度耦合,扩展性差,适合小型项目。例如:学生管理系统
- 分布式架构特点:松耦合,扩展性好,但架构复杂,难度大。适合大型互联网项目,例如:京东,淘宝。
微服务:一种良好的分布式架构
- 优点:拆分力度更小、服务更独立、耦合度更低
- 缺点:架构非常复杂,运维、监控、部署难度提高
# 微服务结构
微服务这种方案需要技术框架来落地,全球的互联网公司都在积极尝试自己的微服务落地技术。在国内最知名的就是 SpringCloud 和阿里巴巴的 Dubbo。
# 微服务技术对比
# 企业需求
# SpringCloud
- SpringCloud 是目前国内使用最广泛的微服务架构。官网地址:Spring Cloud
- SpringCloud 集成了各种微服务功能组件,并基于 SpringBoot 实现了这些组件的自动装配,从而提供了良好的开箱即用体验:
# 服务拆分与远程调用
服务拆分注意事项
- 不同微服务,不要重复开发相同业务
- 微服务数据独立,不要访问其他微服务的数据库
- 微服务可以将自己的业务暴露为接口,供其他微服务调用
# 微服务远程调用
提供者与消费者
服务提供者:一次业务中,被其他为服务调用的服务。(提供接口给其他微服务)
服务消费者:一次业务中,调用其他为服务的服务。(调用其他微服务提供的接口)