Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services AWS SNS是观测者模式的扩展版吗?_Amazon Web Services_Design Patterns_Amazon Sns - Fatal编程技术网

Amazon web services AWS SNS是观测者模式的扩展版吗?

Amazon web services AWS SNS是观测者模式的扩展版吗?,amazon-web-services,design-patterns,amazon-sns,Amazon Web Services,Design Patterns,Amazon Sns,观察者模式讨论发布者和订阅者。这不正是AWS SNS所做的事情吗?通知将广播给所有订阅者,这些订阅者可能是SQS队列、电子邮件地址等。 如果存在显著差异,有什么显著差异?观察者模式通常包括一个维护依赖观察者列表的主题。如果你认为SNS主题本身是主题,那么是的,它适合这个模式。然而,在这种理解中,SNS主题不知道自己的状态,也不代表自己通知观察者——它是其他人的代理 在基于事件的系统中,SNS可能被更好地理解为一个独立的系统。观察者模式通常包括一个维护依赖观察者列表的主体。如果你认为SNS主题本身

观察者模式讨论发布者和订阅者。这不正是AWS SNS所做的事情吗?通知将广播给所有订阅者,这些订阅者可能是SQS队列、电子邮件地址等。
如果存在显著差异,有什么显著差异?

观察者模式通常包括一个维护依赖观察者列表的主题。如果你认为SNS主题本身是主题,那么是的,它适合这个模式。然而,在这种理解中,SNS主题不知道自己的状态,也不代表自己通知观察者——它是其他人的代理


在基于事件的系统中,SNS可能被更好地理解为一个独立的系统。

观察者模式通常包括一个维护依赖观察者列表的主体。如果你认为SNS主题本身是主题,那么是的,它适合这个模式。然而,在这种理解中,SNS主题不知道自己的状态,也不代表自己通知观察者——它是其他人的代理


在基于事件的系统的上下文中,SNS可能更好地理解为一种观察者模式。

我一直认为SNS是观察者模式的分布式实现。这就是原因;想象一下,您必须将通知分发给工作流的不同参与者—许多人都有兴趣知道您的应用程序中达到了某种状态

如果您试图在单个实例中实现观察器模式,那么您将受到内存和CPU限制的限制,无论您进行了多大的扩展,您随时都会达到限制。如果您碰巧有数十万个通知要处理,那么您最终会延迟很多时间,有时会导致知道应用程序处于该特定状态不再有价值。最终,您将不得不扩展您的观察者模式实现——但似乎有人已经这样做了

这就是观察者模式的样子:

我们现在可以试着弄清楚SNS是否适合

  • 我们需要一个负责及时通知所有人的中心人员
  • 我们需要能够通知不同类型的观察员
  • 我们需要能够实时注册和注销观察员
  • 我们需要能够检索每个订阅了通知的人 如果SNS做了所有这些事情,我们有一个-我的意思是,它可以是任何东西,但我知道它也是一个观察员模式的实现

    现在让我们看看:

  • 我们可以——拥有订阅的观察家列表的中心人物
  • 我们可以用不同的协议来解决这个问题。您应该只知道,在纯HTTP(以及其他)中的SNS情况下是这样的
  • 是的,我们可以使用subscribe及其类似工具来管理谁正在收听通知
  • 当您的应用程序上发生事件时,我们愿意与您联系
  • 当然,我们可以通知所有人
    然后我问你,为什么SNS不能被认为是观察家模式的一个扩展版本?它像鸭子一样嘎嘎叫

    我一直认为SNS是观察者模式的分布式实现。这就是原因;想象一下,您必须将通知分发给工作流的不同参与者—许多人都有兴趣知道您的应用程序中达到了某种状态

    如果您试图在单个实例中实现观察器模式,那么您将受到内存和CPU限制的限制,无论您进行了多大的扩展,您随时都会达到限制。如果您碰巧有数十万个通知要处理,那么您最终会延迟很多时间,有时会导致知道应用程序处于该特定状态不再有价值。最终,您将不得不扩展您的观察者模式实现——但似乎有人已经这样做了

    这就是观察者模式的样子:

    我们现在可以试着弄清楚SNS是否适合

  • 我们需要一个负责及时通知所有人的中心人员
  • 我们需要能够通知不同类型的观察员
  • 我们需要能够实时注册和注销观察员
  • 我们需要能够检索每个订阅了通知的人 如果SNS做了所有这些事情,我们有一个-我的意思是,它可以是任何东西,但我知道它也是一个观察员模式的实现

    现在让我们看看:

  • 我们可以——拥有订阅的观察家列表的中心人物
  • 我们可以用不同的协议来解决这个问题。您应该只知道,在纯HTTP(以及其他)中的SNS情况下是这样的
  • 是的,我们可以使用subscribe及其类似工具来管理谁正在收听通知
  • 当您的应用程序上发生事件时,我们愿意与您联系
  • 当然,我们可以通知所有人
    然后我问你,为什么SNS不能被认为是观察家模式的一个扩展版本?它像鸭子一样嘎嘎叫

    我同意你的观点,SNS本身并不决定何时发送通知,但它确实保存了当“有人”说状态发生变化时通知所有人的数据。但是观察者的模式不一样吗?主体只是负责向观察者发送通知,而不是它的状态是如何改变的,不是吗?我同意你的观点,SNS本身并不决定何时发送通知,但它确实保存了当“某人”说状态已经改变时通知谁的数据。但是观察者的模式不一样吗?主体只是负责向观察者发送通知,而不是它的状态是如何改变的,不是吗?