代码之家  ›  专栏  ›  技术社区  ›  ashitaka

备份持久性存储。我有什么选择?

  •  0
  • ashitaka  · 技术社区  · 16 年前

    我有一个接受提供者回调的服务。 动机 :我不想丢失任何回调(当然,除非我的网络无法访问)。

    假设不可能的事情发生了,我的MySQL服务器有一段时间无法访问, 我想在多次尝试失败后返回到辅助持久性存储。

    我有什么选择?队列,内存缓存?

    4 回复  |  直到 16 年前
        1
  •  1
  •   MarkR    16 年前

    你说你收到了“回电”——你还不清楚他们是什么。什么是协议?是通过网络吗?

    如果它是HTTP,那么我想说最好的方法是,如果您的应用程序无法将数据写入永久存储,那么它应该向调用者返回一个错误(如果协议中存在该错误,请稍后再试)。

    像回调这样的异步进程应该总是能够处理下游的故障并对其请求进行排队。

    我已经和一个支付提供商合作过了。如果您无法完全处理请求,只需向调用者发送一个错误。

        2
  •  0
  •   FlipFlop    16 年前

    我建议使用某种作业队列服务器。我个人使用喜达屋,并取得了很好的效果。它使用memcache协议,因此很容易将其用作持久队列。 Starling on Github

        3
  •  0
  •   derobert    16 年前

    我以前在sqlite中为此排过队。不过,在我的例子中,它是为了防止到mysql服务器的网络链接丢失,数据是本地生成的。

        4
  •  0
  •   che    16 年前

    你可以有一个备份mysql服务器,并在主服务器崩溃的情况下切换到该服务器。如果它将是唯一的故障转移存储,您可以在应用服务器上本地运行它。