在事件驱动的Microservices体系结构中,在处理前端和后端之间的通信时,我非常关注:
用例:用户创建新产品,然后转到产品列表进行检查。流程如下所示:

我的问题是,在这种情况下,UI如何处理产品列表?新产品可能不存在,因为读取端没有处理新产品事件。
发布于 2019-07-18 03:56:27
这是可能的,因为您正在使用CQRS模式。通常,在分布式系统中,我们更倾向于最终一致性而不是强一致性,以使其具有可伸缩性。所以我们得做个交易。
在您的场景中,真正需要多长时间才能反映从写到读数据库的更改,但我认为应该不会太长。如果是这样,您必须在UI结束时相应地管理它,例如,当您在系统中输入产品时,您可能需要返回ID,您的UI将在read数据库中轮询,同时用户有等待屏幕。或者更好的是,您可能必须使用Websockets来避免轮询和更新UI,只要产品在read端可用。
https://stackoverflow.com/questions/57074107
复制相似问题