gpt4 book ai didi

azure - 如何通过事件驱动架构防止循环

转载 作者:行者123 更新时间:2023-12-02 07:18:36 24 4
gpt4 key购买 nike

在我们的组织中,我们正在实现 API LED Connectivity模式与事件驱动架构一起。我们基本上希望源系统发布事件,订阅者可以对其使用react以执行某些操作,主要是更新他们自己的源系统。我们的设计有一个主要问题,目前还没有解决方案。所以我们想请求您的帮助!

我们的问题是事件会触发更新循环。下图以极其简单的方式描述了我们想要什么以及将会发生什么:

enter image description here

系统 A 中的更新将更新系统 B,系统 B 将创建事件并更新系统 A,系统 A 将创建事件并更新系统 B 等等。

考虑以下因素,我们如何停止这个循环:

我们无法阻止系统 B 发送事件。由于许多源系统的复杂性,我们对此没有影响力。所以系统B会发送事件我们不能忽略系统B到系统A的事件,因为该事件中可能存在确实需要在系统A中更新的数据感谢任何帮助,谢谢!

最佳答案

当同时存在系统 C 和 D 时,这个问题会变得更糟,并且由于发布者在发布新事件之前对事件没有任何了解,事件会导致链中稍后的循环。 Event-ids/Correlation-ids 只能让您到目前为止。

我提出的最佳解决方案是确保订阅者在不需要处理时提前退出,并且不会生成导致循环的新事件。

即如果系统实际上没有更改任何内容,则不要让它发送更新事件。这使得很多边缘情况消失。

例如如果事件/消息是“更新员工地址”并且地址已经匹配,则在发送任何新事件之前提前退出

这对于重新提交失败的事件也有很多好处。

关于azure - 如何通过事件驱动架构防止循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71508174/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com