单体架构与微服务的区别:
单体架构
用一个归档包( war )解决所有问题的方法论 适合:简单小型 应用
缺点:
- 部署慢 效率低
- 无法按需扩展
微服务特点
-
每个微服务可独立运行在自己的进程里
每个微服务都是一个tomcat -
一系列独立运行的微服务共同构建整个系统
每个微服务都能独立运行,相互协作 每个微服务为独立的业务开发,只关注某个特定的功能 -
全自动机制(CI/CD) 异构(不同语言与数据存储)
-
轻量的通信机制
核心思想:分而治之
微服务使用场景:
- 大型复杂应用
- 高并发、高负载
- 快速迭代
微服务拆分方法:
- Demain Driven Design 简称:ddd
书籍讲解: 领域驱动设计(偏理论)
实现领域驱动设计(理论与实践)
领域驱动设计(速成) 推荐 - 面向对象 拆分
By name 状态 拆分
By verb 行为 拆分
拆分一个适合的微服务
- 按照职责划分
- 按照通用性划分
- 微服务粒度 --相对合理 良好地满足业务需求
- 增量迭代
每个微服务保持相对独立,修改过的微服务不设计其他微服务的改动 - 持续进化
语言的更换与技术的更替