gpt4 book ai didi

reactive-programming - Pub/Sub Vs Observer Vs Reactive

转载 作者:行者123 更新时间:2023-12-04 12:47:04 24 4
gpt4 key购买 nike

当我之前使用过像 MVVMLight 这样的 Pub/Sub 模式框架时,我已经看到订阅者的调用是同步处理的。从可扩展性的角度来看,像 Rx 这样的响应式框架是否有助于 pub 和 sub 完全解耦和可扩展的可扩展性?哪种模式有助于可扩展性?

最佳答案

我不知道 MVVMLight 的细节,但总的来说 Pub/Sub 是一个模式,其中:

  • 发布者和订阅者彼此不了解。他们只知道发布/消费消息的代理。
  • 因此,消息的发布和消费是异步完成的,完全解耦。这意味着发布/消费端可以独立扩展,并且在一个部分发生故障的情况下,另一部分能够继续工作。

  • 现在, reactive programming 是一种模式,用于对更改及其在多个参与者之间的传播进行建模。因此,它不太关心实现细节,而是更专注于提供抽象的声明式接口(interface),这使得处理事件流和在它们之上执行处理变得更加容易。直接来自 ReactiveX 的文档:

    ReactiveX is not biased toward some particular source of concurrency or asynchronicity. Observables can be implemented using thread-pools, event loops, non-blocking I/O, actors (such as from Akka), or whatever implementation suits your needs, your style, or your expertise. Client code treats all of its interactions with Observables as asynchronous, whether your underlying implementation is blocking or non-blocking and however you choose to implement it.


    因此,解耦/可扩展性将主要取决于下面使用的实现;该框架的主要好处主要是提供了抽象的、声明性的接口(interface)。
    关于 观察员 模式(在问题的标题中提到):它是一个相当低级的原语,可用于实现相同的目标,但可能会导致更复杂的代码库。与更抽象的响应式框架相比,有关观察者模式陷阱的更多详细信息,您可以阅读以下论文:
    Deprecating the Observer pattern with Scala.React

    关于reactive-programming - Pub/Sub Vs Observer Vs Reactive,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30784360/

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