CQRS小介

  CQRS(Command Query Responsibility Segregation)命令查询责任分离,是指将数据存储的读取和更新操作分开的一种模式。

  实施CQRS可以提高性能、可拓展性和安全性。

CQRS的目标

  使用多种模型来表示相同的数据,与可拓展性、可用性、安全性、性能都没有关系

CQRC的场景

  1. 需要读写解耦的业务场景
  2. 需要将读负载和写负载分开的业务场景  

CQRS的陷阱

  • 单向命令,过度隔离:操作应该被分为 「改变数据」的命令和「查询数据」的命令 两组。该原则提升到架构层面后,用例被隔离成相同的两组,命令和查询,二者只能选一。但这将导致系统的复杂度严重上升。
  • 事件溯源:CQRS !== EventSoucing
  • 服务过于细化,没有反应业务边界

以上总结参考:https://mp.weixin.qq.com/s/trggZOWZ5rmOvg07t2CV-g、https://mp.weixin.qq.com/s/mfjtDrdVQYfLuh4pNaHpZw

原文地址:https://www.cnblogs.com/smallzhen/p/14770593.html