首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设计前端体验以支持后端异步CQRS操作

设计前端体验以支持后端异步CQRS操作
EN

Software Engineering用户
提问于 2019-11-20 12:01:43
回答 1查看 174关注 0票数 1

我正在用CQRS和事件源开发一个微服务。当将事件保存到事件存储区时,服务当前还将更新的聚合根保存为单独表中的JSON对象。到目前为止,我已经将写模型与读取模型分离开来(尽管不是在单独的数据存储中)。

我想更进一步。我希望为写入模型提供一个微服务,为读取模型提供另一个微服务,以解决可伸缩性问题。每个服务都有自己的数据库。我希望使用消息传递来维护写入和读取模型之间的最终一致性。

我担心这种方法会如何影响这个后端的前端应用程序中的用户体验。

假设用户创建了一个post。写服务返回ok,然后(根据设计)用户立即被重定向到显示新创建的post及其内容的页面。

但是,由于消息传递的异步性质,读取模型可能与写事务不一致,因此,在前端试图调用它时,读取服务还没有包含新创建的post。

处理这种情况的常规/行业标准方法是什么?

EN

回答 1

Software Engineering用户

发布于 2019-11-20 21:36:55

基本上,在执行重定向之前,您要等到可以读取回数据为止。“最终”是描述一致性模型的一个不幸的词,因为它意味着要等待很长时间。在绝大多数情况下,您可以度量它不一致的时间(毫秒)。如果延迟时间比这长,那么要么集群中出现了严重问题,要么您故意这样设计它,以便利用批处理或现货定价,或者是因为需求,比如限制对上游服务的速率。

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

https://softwareengineering.stackexchange.com/questions/401352

复制
相关文章

相似问题

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