【问题标题】:Dependencies on external (web) services对外部(Web)服务的依赖
【发布时间】:2010-12-05 00:20:53
【问题描述】:

我目前正在参与一个项目,我们正在开发一个大型网站,该网站严重依赖另一家公司开发的外部服务(某些功能)。外部服务偶尔会中断,无法为我们提供所需的数据。这对我们来说是一个主要问题,因为对“我们的”网站的要求非常高。

我们应该如何处理?我们不愿意缓存来自外部站点的数据以用作“备份”,因为我们可能会显示过时或错误的数据。我们还认为我们不应该尝试通过存储外部数据的本地副本来“修补”外部系统中的问题,因为这可能会导致本地数据过时或错误的同步问题。

有没有人有类似的经历?我们如何解决这个问题(或至少缓解问题)有什么想法吗?

【问题讨论】:

  • 重要的是我们只显示不太旧的数据(其中“太旧”由产品所有者定义)。我们可能会根据以下建议实施缓存机制来尝试缓解问题。在我看来,更好的解决方案是修复我们所依赖的系统,但这个决定不取决于我的团队。我们将尽我们所能提供最近的数据。谢谢!

标签: web-services web-applications web


【解决方案1】:

缓存是我的首选。

这取决于您开发的网站,但您能否缓存所有结果并通知用户这是您所做的 - 例如“这在 2009 年 10 月 8 日是准确的 - 单击此处刷新”

更新:在不了解您从 Web 服务获得的数据类型以及您网站的受众群体的更多信息的情况下,很难知道该建议什么,因为解决方案在很大程度上取决于那些因素。您需要考虑您的客户,以决定是否可以向他们展示可能过时的数据。

如果对 Web 服务的请求趋于相似,那么需要考虑的一件事是,缓存可能还会帮助您提高性能和扩展性以及帮助您提高弹性。

【讨论】:

    【解决方案2】:

    当外部资源不可用时,您可以使用缓存作为备份机制。通过这种方式,只要服务可用,您就可以使用实时数据,而当它出现故障时,就是您挖掘缓存的时候。重要的是要以某种方式标记数据,以便该数据的消费者知道它的新鲜程度。

    您知道自己的需求和要求是什么,并且根据我可以阅读的内容,数据的新鲜度至关重要,但您的服务的可用性也很重要。基于这种理解,如果您可以缓存数据,我肯定会这样做,但仅在需要时将其用作备份。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-19
      • 1970-01-01
      • 2011-11-13
      • 2019-06-29
      • 2017-11-08
      相关资源
      最近更新 更多