Skip to content

微服务设计(第2版)读书笔记

微服务概述

什么是微服务?

答:微服务(microservice)是基于业务领域建模的,可独立发布的服务。它会把业务内聚的功能封装起来,并通过网络供其他服务访问。将这样的服务组合起来构建出更复杂的系统。


微服务特点

  1. 可独立部署
  2. 围绕业务领域建模
  3. 状态自主,避免微服务之间共享数据库
  4. 服务大小,服务接口要可控
  5. 灵活性,微服务在组织、技术、规模、健壮性等多个具有可观的灵活性
  6. 架构和组织的一致性

微服务与单体

单体

“系统中的所有功能必须一起部署时,我们可以视它为一个单体。

单体又细分为,单进程单体,模块化单体(依然是单进程),分布式单体

单体的优势

开发流程简单,系统监控,故障排除和测试工作大大简化

微服务的优势

  1. 技术的异构性,可以针对不同微服务业务特性使用不同技术,满足不同业务的不同诉求。
  2. 健壮性,实现故障隔离。
  3. 扩展性,扩展灵活,只需要按需扩展需要的微服务。
  4. 部署便捷
  5. 组织协调
  6. 可组合

微服务的痛点

  1. 开发者体验,本地开发需要启动微服务多。
  2. 技术过载,引入大量新技术。
  3. 成本,
  4. 生成报表的成本变高
  5. 监控和故障排除较复杂,需要引入分布式可观测
  6. 安全,数据传输跨多服务,对安全性提出了更高的要求。
  7. 测试成本变大
  8. 延迟,数据在微服务之间进行序列化传输反序列化,容易造成系统延迟问题
  9. 数据一致性挑战

微服务建模

合理划分微服务边界

领域驱动设计

  • (未完待续)