在过去的 9 个月里,我一直在从事 CQRS 项目(我的第一个项目),这是一个沉重的学习曲线。我目前在我的写入模型中使用 JOliver 出色的 EventStore,并在我的读取模型中使用 PostGresSql。
我的读数据库和写数据库都在同一台机器上,这意味着当对写数据库进行更改时,在同一个同步调用中对读模型进行更改。
当我学习 CQRS 时,我觉得这是最好的方法,因为我没有使用过 MassTransit、NServiceBus 等消息队列/服务总线框架的经验。
现在,我的大部分架构都已到位,可以引入消息队列框架。
今天,我遇到了 Redis MQ,它是 ServiceStack 的一部分,因为我们已经将 ServiceStack 用于基于 Rest 的 HTTP 客户端,这似乎是正确的方法。
我的问题更多是关于了解我需要知道什么(或者如果我有任何误解)来实现 Redis MQ 以及 Redis MQ 是否是正确的选择?
现在据我了解,我将使用 Redis MQ 作为写入和读取数据库之间的持久队列。一旦我的事件存储记录了我的域中发生的事情,它就会发布到 Redis MQ。侦听事件/消息的服务将从 Redis MQ 接收事件/消息,一旦它处理了它(即更新或写入读取模型),通知/响应将返回到事件存储以告诉事件存储消息已被侦听器/订阅者接收并处理。
这听起来正确吗?
Redis MQ 架构也能给我 NSB、RavenDB、MassTransit 等提供的一切吗?
此外,我将部署到 Windows 2008 和 2003 服务器。Redis 对于这些操作系统是否稳定?