处理事件驱动微服务中的 UI

Bar*_*ona 8 microservices

在事件驱动的微服务架构中处理前端和后端之间的通信时,我很担心:

用例:用户创建新产品然后他去产品列表检查。流程如下 在此处输入图片说明

我的问题是在这种情况下 UI 如何处理产品列表?新产品可能不存在,因为读取端尚未处理新产品事件。

Imr*_*had 2

这是可能的,因为您使用的是 CQRS 模式。一般来说,在分布式系统中,我们更喜欢最终一致性而不是强一致性,以使其可扩展。所以需要权衡。

在您的场景中,实际上取决于反映从写入数据库到读取数据库的更改需要多长时间,但我认为应该不会很长。如果是,那么您必须在 UI 端进行相应的管理,例如,一旦您在系统中输入产品,您可能需要返回 ID,您的 UI 将轮询读取数据库,同时用户有等待屏幕。或者更好的是,您可能必须使用 Websockets 来避免轮询,并在产品在读取端可用时立即更新 UI