微服务介绍
单体架构
- 简介
将业务所有功能集中在一个项目中开发,打成一个包部署 - 优点
- 架构简单
- 部署成本低
- 缺点
- 耦合度高,不利于后续更新迭代
- 耦合度高,不利于后续更新迭代
分布式架构
- 简介
每个业务模块作为一个独立项目开发,称为一个服务,但通常仍共用一个数据库。 - 优点
- 耦合度低,利于后续服务升级拓展
- 缺点
- 架构复杂
- 部署难度较大,通常需要多集群。
- 相比于单体架构,需要额外考虑的问题
- 服务拆分粒度如何?
- 服务集群地址如何维护?
- 服务之间如何远程调用?
- 服务健康状态如何监控、感知?
微服务
- 简介
一种良好架构设计的分布式架构方案,一个服务对应着一个数据库。 - 优点
- 耦合度更低,利于后续服务升级拓展。
- 自治性强,团队、技术、数据、部署都独立出来。
- 单一职责,避免重复业务开发。
- 缺点
- 架构更复杂
- 部署难度更大,通常需要多集群。
- 运维、监控难度提高。
微服务常用技术框架和技术对比
Springcloud
Springcloud与Springboot的版本兼容
服务拆分demo
准备数据库环境
准备两个数据库,分别为cloud_user和cloud_order
cloud_user中新建表tb_user,并插入一些数据
cloud_order中新建表tb_order,并插入一些数据