一、服务架构的历史
- 现有的服务框架: 单体架构
- 概念: 将业务所有功能集中在一个项目中开发,打包部署
- 优点: 架构简单,部署成本低
- 缺陷: 耦合度高
- 分布式架构
- 概念: 根据业务功能对系统进行拆分,每个业务模块作为独立项目开发,称为一个服务
- 优点: 耦合度低,拓展性高
- 缺陷: 无法跨越服务器请求调度
- 分布式架构需要考虑的几个问题
- 服务拆分精度
- 服务集群地址维护
- 服务之间调用
- 服务健康状态检查
二、微服务
(一)概念: 微服务是一种经过良好架构设计的分布式架构方案。
(二)微服务架构特征:
- 1、单一职责: 微服务拆分粒度小,每个服务对应唯一业务,避免重复业务开发。
- 2、面向服务: 微服务对外暴露业务接口。
- 3、自治: 团队独立、技术独立、数据独立、部署独立
(三)微服务结构的对比
Dubbo | SpringCloud | SpringCloudAlibaba | |
---|---|---|---|
注册中心 | zookeeper、Redis | Euraka、Consul | Nacos、Eureka |
服务远程调用 | Dubbo协议 | Feign(http协议) | Dubbo、Feign |
配置中心 | 无 | SpringCloudConfig | SpringCloudConfig、Nacos |
服务网关 | 无 | SpringCloudGateway、Zuul | SpringCloudGateway、zuul |
服务监控和保护 | dubbo-admin | Hystrix | Sentinel |
三、SpringCloud
(一)概念: SpringCloud是目前国内使用最广泛的微服务框架,集成了各种微服务功能组件,并基于SpringBoot实现了组件的自动装配,提供开箱即用体验。
(二)官方地址: https://spring.io/projects/spring-cloud
(三)SpringCloud与SpringBoot的版本兼容
四、提供者与消费者
- 什么是提供者和消费者?
- 服务提供者: 一次业务,被其它微服务调用的服务。(基本上每个微服务都是服务提供者)
- 服务消费者: 一次业务,调用其他微服务的服务。(调用接口的微服务)