微服务
微服务
单体架构
定义:将业务的所有功能集中在一个项目中开发打包成一个包部署
单体建构缺点
- 模块之间耦合性高
- 模块之间数据交互复杂
微服务架构
- 微服务架构是服务化思想指导下的一套最佳实践架构方案。
- 服务化,就是把单体架构中的功能模块拆分成多个独立的项目
微服务架构优点
- 模块之间耦合性低
- 模块之间数据交互简单
- 颗粒度小
- 团队自治
- 服务自治
服务拆分的原则
- 创业型项目:先采用单体架构,快速开发,快速试错。随着规模扩大,逐渐拆分
- 确定的大型项目:资金充足,目标明确,可以直接选择微服务架构,避免后续拆分的麻烦
拆分目标
- 高内聚:每个微服务模块功能单一,一个功能一个模块,包含的业务相互关联度高,完整度高
- 低耦合:每个微服务模块之间相互独立,尽量减少对其他微服务的依赖
拆分方式
- 纵向拆分:按照业务模块来拆分
- 横向拆分:抽取公共部分,提高复用性
微服务的拆分
拆分服务
拆分的工程结构有两种
独立project
使用一个文件夹来管理每一个微服务,每一个微服务都是一个独立的项目
Maven聚合
使用Maven聚合,将多个微服务聚合到一个项目,每个微服务是一个模块,每个模块都能独立运行、打包和部署