微服务架构设计课

学员将能够学习到微服务的本质、拆分策略、Restful模型、不同微服务之间的组合模式。

1440人学习

中级21课时2023/12/14更新

二维码下载学堂APP缓存视频离线看

架构驿站
    • 畅销套餐
    • 精选套餐
    • 人气套餐
    • 尊享套餐
  • 课程介绍
  • 课程大纲

适合人群:

1. 已经掌握Spring Cloud & Alibaba等微服务开发中基础组件的使用 2. 有微服务开发需求的小伙伴 3. 有意向在微服务开发领域进阶的小伙伴

你将会学到:

学员将能够学习到微服务的本质、拆分策略、Restful模型、不同微服务之间的组合模式。

课程简介:

微服务架构设计课大纲:

微服务架构设计.png

课程内容节选:

CQRS(Command Query Responsibility Segregation,命令查询责任分离)是一种在微服务架构下常用的软件架构模式。

  • 命令:增加、删除、修改

  • 查询:数据的获取

在单体应用中,特别是以数据库为中心的管理系统中,命令和查询往往是在同一个据库的同一组实体上执行。这些实体一般就是关系数据库中表的记录。在增、删、改、查操作中,读写模型经常以同样的形式存在。

传统的 CRUD 方法存在以下的缺点:

  • 在实际应用中,数据的读取和写入的格式之间不一定需要完全匹配。但在同样的读写模型下,二者必须是统一的数据格式。

  • 当针对同一组数据实体的数据进行并发操作时,要么通过悲观锁来避免更新冲突,其代价是引起系统并发吞吐量的降低;要么通过乐观锁来进行并发更新,但需要处理其可能引起的冲突并回滚操作。这些成本都会随着系统的复杂性和吞吐量的增加而增大。

  • 每个实体都受读写操作的限制,使得安全性和权限的管理变得更加复杂。

CORS 的实现方案

命令和查询职责分离(CQRS)是一种读写数据分离的服务协作模式。通过区分命令和查询的操作,将数据的读写分离。视用命令和查询职责分离的模式具有一些明显的优势:

  • 与传统 CRUD 中使用的单一数据模型相比,CORS 使用单独的查询和更新模型,能够简化设计和实现,增强灵活性。

  • 查询模型和更新模型可以访问不同的物理存储。通过将数据分成不同的物理存储能显著地提高性能、可扩展性和安全性。

image.png

image.png

CORS模式的适用场景:

  • 数据读取与数据写入的性能需要分开进行优化。例如在许多电商网站里,对于商品信息的读操作次数是写操作的许多倍,在这种情况下可以考虑扩展读模型,而只在一个或几个实例上运行写模型。

  • 需要跨团队开发协作时。例如一个团队可以专注于写模型的场景,另一个团队可以专注于读模型和用户界面。

  • 与其他系统集成,特别是与事件溯源相结合时,某个子系统的临时故障不会影响其它系统的可用性。



展开更多

“架构驿站”老师的其他课程更多+

在线
客服
APP
下载

下载Android客户端

下载iphone 客户端

官方
微信

关注官方微信

返回
顶部