《微服务架构设计模式》笔记1—概述、逃离单体地狱

一、概述

1、章节总述

  • 第一章:

    • 单体应用程序的弊端
    • 微服务架构模式概述
  • 第二章:

    • 软件架构重要性
    • 将应用程序分解服务集合的模式描述
    • 分解过程中各种障碍解决方案
  • 第三章:

    • 微服务进程间通信的几种模式
    • 异步和基于消息通信
  • 第四章:

    • 如何使用Saga模式维护服务间的数据一致性。
    • Saga是通过传递异步消息的方式进行协调的一系列本地事务
  • 第五章:

    • 领域驱动设计(DDD)的聚合、领域事件等模式
    • 使用上述模式为服务设计业务逻辑
  • 第六章:

    • 使用事件溯源模式开发业务逻辑
    • 事件溯源模式是一种以事件为中心的设计思路,用来构建业务逻辑和持久化领域对象。
  • 第七章:

    • API组合模式、命令查询职责隔离模式(CQRS)
    • 这两模式用来实现查询分散在多个服务中的数据。
  • 第八章:

    • 处理来自各种外部客户端请求的外部API模式
    • 移动应用程序、JS应用程序、第三方程序
  • 第九章:

    • 微服务自动化测试技术(一)
    • 测试概念、测试金字塔
    • 测试套件中的每种测试类型的相对比例
    • 如何编写构成测试金字塔基础的单元测试
  • 第十章:

    • 微服务自动化测试技术(二)
    • 集成测试、消费者契约测试、组件测试等
  • 第十一章:

    • 开发生产就绪服务的各个方面
    • 包括安全性、外部化配置模式和服务可观测行模式
    • 服务可观测性模式包括日志聚合、应用指标和分布式追踪
  • 第十二章:

    • 可用于部署服务的各种部署模式
    • 包括虚拟机、容器、serverless模式
    • 使用服务网格的好处。
    • 服务网格是微服务架构中处理服务间通信的一个网络软件层。
  • 第十三章:

    • 采用绞杀者模式(Strangler)模式逐步将单体架构重构为微服务架构。
    • 绞杀者模式是指以服务形式实现新功能,从单体中提取模块将其转换为服务。

2、程序架构设计基础

  • 三层架构
  • Web应用程序设计
  • 使用面向对象设计来开发业务逻辑
  • 关系型数据库:SQL和ACID事务的概念
  • 使用消息代理和REST API进行进程间通信
  • 安全,包括身份验证和访问授权。

3、本书目的

读完本书后,你会理解和掌握如下知识:

  • 微服务架构基本特点,好处、弊端,以及应该在什么情况下使用微服务架构。
  • 分布式数据管理的架构模式。
  • 针对微服务架构应用程序的有效测试策略
  • 微服务架构应用程序的部署方式。
  • 把单体应用重构为微服务架构的策略。

也会掌握如下技术:

  • 使用微服务的架构模式来设计应用程序的架构
  • 为服务开发业务逻辑
  • 使用Saga在进程间维护数据的一致性。
  • 实现跨服务的数据查询。
  • 更高效的测试微服务架构应用程序。
  • 开发生产环境就绪的应用程序,实现安全性、可配置性和可观测性。
  • 把现有的单体应用重构为服务。

二、逃离单体地狱

1、单体架构特点

  • 应用开发简单:IDE只需要构建一个单独应用程序
  • 易于大规模更改:可以更改代码和数据库模式,构建部署。
  • 测试相对直观简单。
  • 部署简单:war包部署到Tomcat
  • 横向扩展简单:运行多个实例,负载均衡调度。

2、单体地狱

image-20210616143556727

  • 单体服务的缺点
    • 过度复杂性和庞大性使开发者很难理解它的全部,导致修复bug和实现新功能就变得困难和更耗时。
    • 形成恶性循环,新的开发者在理解上出现偏差,更改时更容易出错,使得代码库更复杂难懂。
    • 开发速度缓慢,IDE构建应用过于耗时,影响效率。
    • 从代码提交到实际部署周期很长,容易出问题。
    • 难以扩展:多模块再同
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值