CQRS解構: 用讀寫分離設計API
本文討論的是如何使用CQRS實現API設計。
查詢和命令是兩種分離的API。
為何使用這種模式?我喜歡它有幾個原因。作為API的消費者,我永遠不必擔心使用API出現異常了;相反,我能確切地知道哪些API呼叫會專門應付對系統的更改請求,沒有含糊之處。這使得API 易於推理。
我曾經嘗試建立一個統一的介面來完成兩者,但是隨著時間推移,出現“服務於兩個主人“”的典型問題,單一介面變得更加混亂。
時間長了會發生:“我們不使用這個欄位,為什麼我們要更新它?。” 回應:“我不知道,但繼續這樣做或會出問題。”
概述
下面是名為Command / Query Responsibility Segregation(CQRS)的設計模式:
返回資料 做出改變 查詢 ✔️ ❌ 命令 ❌ ✔️ <p class="indent"> |
查詢和命令是兩種分離的API。
為何使用這種模式?我喜歡它有幾個原因。作為API的消費者,我永遠不必擔心使用API出現異常了;相反,我能確切地知道哪些API呼叫會專門應付對系統的更改請求,沒有含糊之處。這使得API 易於推理。
我曾經嘗試建立一個統一的介面來完成兩者,但是隨著時間推移,出現“服務於兩個主人“”的典型問題,單一介面變得更加混亂。
時間長了會發生:“我們不使用這個欄位,為什麼我們要更新它?。” 回應:“我不知道,但繼續這樣做或會出問題。”
相關文章
- akka-typed(8) - CQRS讀寫分離模式模式
- Akka-CQRS(0)- 基於akka-cluster的讀寫分離框架,構建gRPC移動應用後端架構框架RPC後端架構
- Mysql之讀寫分離架構-AtlasMySql架構
- Redis的讀寫分離Redis
- KunlunBase 讀寫分離方案
- Laravel讀寫分離原理Laravel
- discuz 配置讀寫分離(主寫從讀)
- golang sync.Map之如何設計一個併發安全的讀寫分離結構?Golang
- MyCat分庫分表、讀寫分離
- 深度:微服務化的資料庫設計與讀寫分離微服務資料庫
- ProxySQL簡介原理及讀寫分離應用SQL
- 資料讀寫壓力大,讀寫分離
- ShardingSphere(七) 讀寫分離配置,實現分庫讀寫操作
- 資料庫讀寫分離資料庫
- 讀寫分離 & 分庫分表 & 深度分頁
- 命令查詢職責分離 - CQRS
- mysql優化之讀寫分離MySql優化
- 探究MySQL MGR的讀寫分離MySql
- MySQL 讀寫分離的好處MySql
- ProxySQL實現MySQL讀寫分離MySql
- 【Cetus】Cetus-讀寫分離版
- StoneDB 讀寫分離實踐方案
- 位元組面試:什麼是讀寫分離?讀寫分離的底層如何實現?面試
- MySQL 高可用架構:主從備份及讀寫分離MySql架構
- CQRS命令查詢分離架構的多種形式實現 - Kapil架構API
- Docker實現Mariadb分庫分表、讀寫分離Docker
- 乾貨滿滿 | 微服務化的資料庫設計與讀寫分離微服務資料庫
- 【Mongo】Mongo讀寫分離的實現Go
- MYSQL 主從 + ATLAS 讀寫分離 搭建MySql
- MySQL cetus 中介軟體 讀寫分離MySql
- 配置\清除 MySQL 主從 讀寫分離MySql
- SpringBoot使用Sharding-JDBC讀寫分離Spring BootJDBC
- MySQL 官宣:支援讀寫分離了!!MySql
- mysql讀寫分離的最佳實踐MySql
- DBPack 讀寫分離功能釋出公告
- MySQL主從複製讀寫分離MySql
- Mysql 高可用(MHA)-讀寫分離(Atlas)MySql
- Bytom設計結構解讀