首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用PHP实现CQRS

用PHP实现CQRS
EN

Stack Overflow用户
提问于 2018-05-14 06:29:06
回答 2查看 2.7K关注 0票数 6

我正在研究CQRS模式,我们的团队希望在PHP中开发一个基于CQRS的系统。

我知道我们可以在PHP中模拟事件系统,但是我发现如果编程语言是基于事件的(我不确定这一点),那么CQRS实现更好/更容易。

我有两个问题:

  1. 我想知道,如果我们用PHP的CQRS模式来开发我们的系统,那么是否可以使用其他(基于事件的)编程语言来实现更多的一致性呢?
  2. CQRS在微型服务系统中有什么样的好处?还有其他可靠且易于实现的模式吗?
EN

回答 2

Stack Overflow用户

发布于 2018-05-15 22:05:22

对于CQRS来说,您使用的语言并不那么重要。命令和查询实际上是简单的对象,因此如果需要,可以使用PHP。选择开发人员熟悉的内容。

当使用微服务时,CRQS在与事件源相结合时可能非常有用: microservice A处理命令并将事件存储在事件存储中,而microservice B处理事件、更新查询数据库和处理查询。这样,您的服务就可以独立地进行扩展,并且您的业务逻辑更易于管理。

票数 7
EN

Stack Overflow用户

发布于 2019-05-28 20:09:45

我不建议您使用PHP来构建CQRS。您应该问自己的第一个问题是:“您为什么需要实现像CQRS这样的事件源技术?”

如果答案是因为您需要一个允许您以更有效的方式分发所有系统的体系结构,那么您应该重新考虑使用PHP。它在单线程处理器中运行,并且有很多限制。

在几个月的时间里,我们一直在一个基于CQRS的PHP项目中工作,但最终,我们一直在努力解决许多与性能相关的问题。最后,我们发现了与Elixir的函数式编程,我们决定放弃一个机会。

在几个月的时间里,我读了很多关于CQRS的信息,我发现马丁·福勒( Martin ),他是微服务领域更有意义的贡献者之一。甚至他也强烈建议使用函数式编程语言来进行事件源。

但是,如果您已经决定使用PHP来构建一个CQRS项目,那么您可以给出一个机会并自行测试它。

相反,如果您对使用Elixir感兴趣,您可以从阅读一些实际示例https://leanpub.com/buildingconduit/read开始,这是一个基于Elixir的博客站点,使用的是带有CQRS +命令库的Elixir。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50324219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档