CQRS /事件采购架构的最佳实践/存储选择

时间:2017-03-22 17:23:00

标签: architecture cassandra redis apache-kafka cqrs

任务。使用CQRS /事件采购架构构建可扩展的高负载应用程序。

让我们假设它是免费的广告牌,有很多在线用户。因此用户应该能够:

  1. 注册/登录
  2. 添加/更新/删除广告
  3. 查看广告列表
  4. 搜索广告
  5. 一段时间后分析广告/从Event Store重现每个应用程序状态。
  6. 我的想法。

    我会考虑使用类似的东西:

    1. Cassandra / MongoDB ... - 商店活动
    2. Kafka / Redis / Hazelcast / RabbitMQ ... - 事件队列
    3. 弹性搜索+缓存(例如Redis) - 用于视图
    4. 问题。

      1. 每一步使用一个对另一个的利弊/利弊是什么?或者将事件存储与队列结合起来(例如,使用Kafka作为队列和长期事件存储)?
      2. 是否有人已经证明了堆栈并且可以分享CQRS /事件采购架构的经验?

2 个答案:

答案 0 :(得分:1)

对于我当前的项目,一个基于Web的CRM应用程序,我使用以下堆栈:

  1. MongoDB作为事件存储;
  2. 我没有使用事件队列;当我使用活动商店的汇集时,我不需要一个;每个消费者都管理着自己的州。
  3. MongoDB for views。

答案 1 :(得分:0)

这是一个广泛的问题,它归结为您对技术的满意程度。

我的选择是:
1. Cassandra(你甚至尝试扩展MongoDB吗?)
2. Kafka + Redis(如果需要缓存,则为Redis)
3. Elasticsearch

这三项技术可以为您提供所需的一切。