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

时间:2017-12-20 17:03:29

标签: database design-patterns notifications observer-pattern api-design

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

其他系统必须以某种方式了解这些数据变化并做出相应的反应。 建议采用何种模式或流程将所有系统中的瓶颈保持在最低水平。 因此,您可以防止系统X无法处理以通知所有其他系统或处理尝试获取更改的所有其他系统。 并防止其他系统因为需要获取大型数据集或等待系统X过载而减速。

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

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

1 个答案:

答案 0 :(得分:1)

根据您的要求,没有系统不需要了解其他系统,我认为您应该选择pub-sub模式。要了解它与Observer模式的不同之处,请参阅我的其他回复: Is Observer pattern and pub-sub same when a database is used in the implementation?

如果你没有系统的这种要求彼此不知道,那么观察者模式就会有效。虽然如果可以了解主题系统,但所有其他系统(即观察者系统)彼此不了解,那么在这种情况下甚至Observer模式应该是足够好