【问题标题】:Is CQRS a good approach for implementing a social application on Google App Engine?CQRS 是在 Google App Engine 上实现社交应用程序的好方法吗?
【发布时间】:2011-03-21 23:03:21
【问题描述】:

在我看来,CQRS(命令和查询职责分离)方法可能适合在 GAE 上实现强大且响应迅速的社交应用服务器,因为:

  1. CQRS 不需要 SQL 数据库(GAE 不提供)
  2. 它确实需要一个能够保存序列化对象的数据库,而 GAE 确实提供了这一点
  3. 它需要 GAE 也提供的事件队列
  4. 它支持非阻塞、异步、基于消息的架构,巧妙地解决了 GAE 对长时间运行事务的限制
  5. 它被宣传为具有高度可扩展性,这毕竟是乐观主义者选择 GAE 的原因

问题是,我是一个生疏的 Java 程序员,对这个选择没有什么经验,我非常感谢任何一起使用过这两者的人提供的任何 cmets,或者至少从使用经验中调查过使用一个另一个。

我认为我的主要问题是:

  1. 对于新应用程序的早期阶段,CQRS 是否过于复杂?
  2. 是否存在任何使它们无法匹配的陷阱,例如 GAE 的 Datastore 可能无法很好地匹配 CQRS 要求?
  3. 谁能推荐AxonJdon 特别适合(或不适合)GAE?
  4. 我还应该问什么其他问题?

【问题讨论】:

  • 啊 - 刚刚注意到stackoverflow.com/questions/3781528/… 的问题有些重叠 - 是否有“正确”的链接方式?
  • 您是否最终决定 CQRS 是否足以实现社交网络?你能详细说明一下吗?
  • 在制作 UI 原型后,我在 GAE 应用程序上停滞不前,所以恐怕我从来没有得到结果。但是,如果您这样做并学到一些东西,请发表评论或回复!

标签: java google-app-engine cqrs axon


【解决方案1】:

CQRS 并不过分复杂或困难,但确实需要时间来调整您的思维,摆脱多年来一直困扰我们的传统请求/响应和客户端/服务器交互。

在带有事件溯源的 CQRS 中,数据存储是微不足道的,因为您不需要太多的存储引擎——NEventStore 项目(用 C# 编写)可以轻松支持 40-50 种不同类型的存储引擎,而无需难度很大。

纯 Amazon Web Services 和 Google App Engine 都是 CQRS 应用程序的绝佳平台,因为它们会引导您选择所有正确的基础设施——使用消息传递的异步、非阻塞通信。

我从未听说过 Jdon,但 Axon 已经存在了一段时间。尽量不要过于依赖框架。随着您对 CQRS 理解的加深,这将变得更加明显——基本上这就像在您的代码中试图避免在 everywhere 中使用 Hibernate。您应该只在应该使用的地方使用 Axon(或您选择的任何一个),而不是更多。

您可能会问一些更好的问题,这些问题围绕着去哪里寻求帮助以及已有哪些资源可以帮助您了解 CQRS。有许多不错的博客和网站——包括 cqrsinfo.com——可以帮助您入门。此外,如果您要从 CQRS 开始,Greg Young 的 6 小时视频是必不可少的。

【讨论】:

  • @Jonathan Oliver 正如您所说,GAE 支持“使用消息传递的异步、非阻塞通信”。你能指导我促进这个基础设施的 GAE 服务是什么吗?
  • @Pokuri 具体技术不是我要宣传的。这是沟通的方式。
猜你喜欢
  • 2011-07-15
  • 2012-05-27
  • 1970-01-01
  • 2023-03-14
  • 2018-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多