微服务与DDD简介 | Go主题月

1,073 阅读1分钟

什么是微服务

  • 首先他是一种架构模式
  • 相比较单体架构,微服务架构更独立,能够单独更新和发布
  • 微服务里面的服务仅仅用于某一个特定的业务功能

DDD

领域驱动设计 (Domain Driven Degisn) 康威定律:组织架构对应微服务拆分

DDD作用

真正决定软件复杂性的是设计方法

  • 有助于指导我们确定系统边界
  • 能够聚焦在系统核心元素上
  • 帮助我们拆分系统

DDD常用概念-领域

  • 领域:领域是有范围界限的,也可以说是有边界的
  • 核心域:核心域是业务系统的核心价值
  • 通用子域:所有子域的消费者,提供着通用服务
  • 支撑子域:专注于业务系统的某一重要的业务

电商领域 支撑 商品 订单 核心 销售 通用短信 邮件

DDD常用概念-界限上下文

  • 理解:语文中的语境的意思
  • 方式:领域+界限上下文
  • 目的:不在于如何划分边界,而在于如何控制边界

DDD常用概念-领域模型

  • 理解:领域模型是对我们软件系统中要解决问题的抽象表达。
  • 领域:反应的是我们业务上需要解决的问题

微服务架构

-w514

-w915

微服务设计原则

  • 要领域驱动设计,而不是数据驱动设计,也不是界面驱动设计
  • 要边界清晰的微服务,而不是泥球小单体
  • 要职能清晰的分层,而不是什么都放的大箩筐
  • 要做自己能hold住的微服务,而不是过度拆分的微服务