此篇介绍一下CQRS模式的相关内容。

微服务交互方式

在微服务设计中,一个Service与另外一个Service进行交互通常有三种方式:

1. 命令(Commands)
2. 事件(Events)
3. 查询(Queries)

Commands:命令是一个操作,是希望在另一个服务中执行某些操作的一个请求,命令期待有一个响应。
Events:事件既是一个事实也是一个触发器,事件表示发生了一些事情,类似于通知。
Queries:查询是一个查找某些信息的请求(request),查询不会使得系统状态发生改变。

从Service的角度来说,事件方式要比命令和查询方式更解耦一些。

命令查询职责分离(CQRS)模式

命令查询职责分离模式(Command Query Responsibility Segregation,CQRS),该模式从业务上分离了修改 (Command,增,删,改,会对系统状态进行修改)和查询(Query,查,不会对系统状态进行修改)的行为,使得逻辑更加清晰,从而便于对不同部分进行针对性的优化。