说说

单体应用与微服务

菠萝猫 · 1月18日 · 2020年 317次已读

单体架构

单体应用:一个归档包(例如war包)包含所有功能的应用程序。 架构单体应用的方法论就是单体应用架构。

优点:

  • 架构简单
  • 开发 测试 部署方便

缺点:

  • 复杂性高
  • 部署慢,频率低(全量部署,风险高)
  • 扩展能力受限
  • 阻碍技术创新

微服务“定义”

把复杂的系统拆分成若干个小型的应用,通过协作共同构建成整个系统。

不是一个框架,而是一个架构方法论。

特性:

  • 每个微服务可独立运行在自己的进程
  • 一系列独立运行的微服务共同构建起 整个系统
  • 每个服务都是独立的业务开发,只关注特定的功能
  • 使用不同的语言与数据存储技术
  • 微服务之间通过轻量的通信机制进行通信,例如REST API
  • 全自动的部署机制
image-20200118180857972

优点:

  • 易于开发、维护
  • 启动较快
  • 局部修改易部署
  • 技术栈不受限
  • 按需伸缩

缺点:

  • 运维要求高
  • 分布式固有的复杂性(网络延迟等)
  • 重复劳动

微服务的适用场景

  • 复制的项目
  • 快速迭代
  • 访问压力大

微服务的不适用场景

  • 业务稳定
  • 迭代周期长

微服务拆分-方法论

  • 领域驱动设计 DDD (Domain Driven Design)
  • 面向对象 (by name./by verb.) 状态-行为

划分维度

  • 职责划分
  • 通用性划分

微服务合理的粒度

  • 良好的满足业务
  • 幸福感
  • 增量迭代
  • 持续进化(风险可控)

版权声明:本站采用 “知识共享署名 – 非商业性使用 – 相同方式共享 4.0 中国大陆许可协议” 进行许可,您可以转载本站文章,转载时请以超链接形式标明文章原始出处,Thanks.
0 条回应