0

我面临以下问题。我们需要调用 Twitter API 来发送状态更新,然后我们必须将记录写入本地数据库,记录此 Twitter 更新发生。

我的问题是,如果 Twitter 或数据库调用失败,我们如何确保数据一致性?如果我们更新 Twitter 并且数据库调用失败,我们将没有 Twitter 调用的本地记录,如果 Twitter 调用失败但数据库调用成功,我们将有一个错误的本地记录。

我了解显而易见的第一步,例如仅在 Twitter 调用成功时才更新数据库,反之亦然,但这只能解决一半的问题。

我想这是一个常见问题,但我尝试搜索相关信息但运气不佳。

4

1 回答 1

1

斯蒂芬,

在任何情况下,您都会有一个 SPOF(单点故障)——这将是您的应用程序。但是,为了降低失败的风险,您可以将数据转储到队列中(任何类型的;甚至网络服务器上的 /tmpfs 就足够了),并重复尝试将其写入 DB 直到可用。

如果对 Twitter API 的调用失败,您显然可以将失败尝试的记录放到数据库中。

于 2013-02-05T14:13:39.290 回答