任务。使用cqrs/事件源架构构建可扩展的高负载应用程序。
让我们假设这是一个免费的广告板,有很多在线用户。因此,用户应该能够:
注册/登录
添加/更新/删除广告
看广告单
搜索广告
一段时间后分析广告/从事件存储中复制每个应用程序状态。
我的想法。
我会考虑使用类似于:
Cassandra/蒙哥达…-存储事件
Kafka/雷迪斯/黑兹卡斯特/拉比MQ…-事件队列
ElasticSearch+缓存(如redis)-查看
问题。
在每一步中使用一个对另一个的利弊是什么?或者将事件存储与队列相结合(例如,使用kafka作为队列和长期事件存储)?
是否有人拥有经过验证的堆栈,并且可以分享cqrs/事件源架构的经验?
2条答案
按热度按时间i2byvkas1#
这是一个宽泛的问题,归根结底是你对技术的满意程度。
我的选择是:
1Cassandra(你有没有试着去扩展mongodb?)
2kafka+redis(如果需要缓存,则为redis)
三。ElasticSearch
这三种技术可以为您提供几乎所有您需要的东西。
l5tcr1uw2#
对于我当前的基于web的crm应用程序项目,我使用以下堆栈:
mongodb作为事件存储;
我不使用事件队列;我不需要一个,因为我使用从事件存储池池;每个消费者都管理自己的状态。
查看mongodb。