单体架构

定义

功能、业务集中在一个发布包里,部署允许在同一个进程中

优势

  • 易于开发
  • 易于测试
  • 易于部署
  • 易于水平伸缩

    劣势

  • 难以维护

  • 构建、部署所需时间长,成本大
  • 上手困难
  • 创新、迭代困难
  • 可扩展性差

    微服务架构

    定义

    使用一套小服务来开发单个应用的方式,每个服务运用独自的进程里,一般采用轻量级的通讯机制来互联,并且它们可以自动化部署

    特征

  • 单一职责

  • 轻量级通讯
  • 隔离性
  • 应用数据的独立性
  • 技术多样性

    优势

  • 独立性

  • 敏捷性
  • 易于重构、迭代
  • 高效

    劣势

  • 额外工作

  • 数据的一致性