对外部(Web)服务的依赖性

时间:2009-10-08 14:08:45

标签: web-services web-applications web

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

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

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

2 个答案:

答案 0 :(得分:1)

缓存是我的首选。

这取决于您正在开发的网站,但是您是否可以缓存所有结果并告知用户这是您所做的 - 例如“这在2009-10-08上是准确的 - 点击此处刷新”

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

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

答案 1 :(得分:1)

当外部资源不可用时,您可以使用缓存作为备份机制。通过这种方式,只要服务可用,您就会使用实时数据,而当服务停止时,您就会在挖掘缓存时使用实时数据。以某种方式标记数据以使该数据的消费者知道它有多新鲜是很重要的。

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