什么模式或过程通知多个系统关于另一个系统的变化

what pattern or process to notify multiple systems about changes in another system

想象一个带有 http api 的系统 X,其中包含来自 (mysql) 数据库的大量数据。 想象一下,多个系统依赖于这些数据,但执行的任务却截然不同。有些人在一个数据集上工作,其他人在一大堆数据集上工作。 系统X中未知数集的数据变化没有周期性的节奏。可以在很短的时间内进行大量更改。

其他系统必须以某种方式意识到这些数据变化并做出相应反应。 什么模式或过程是可取的,以将所有系统中的瓶颈保持在最低水平。 这样您就可以防止系统 X 无法通知所有其他系统或处理所有其他试图获取更改的系统。 并防止其他系统因为需要获取大型数据集或等待系统 X 过载而变慢。

理想情况下,所有系统都不需要了解其他系统。特别是系统 X 应该不需要为每个系统实现特定的通知方法。

观察者模式适用于这种情况吗?

根据您的要求,即任何系统都不需要了解其他系统,我认为您应该采用发布-订阅模式。要了解它与观察者模式有何不同,请参考我的其他回复: Is Observer pattern and pub-sub same when a database is used in the implementation?

如果您没有这种系统相互不了解的要求,观察者模式就会起作用。虽然如果知道 Subject 系统是可以的,但所有其他系统(即 Observer 系统)都不知道彼此,在这种情况下甚至观察者模式应该也够好了