【问题标题】:A backup persistence store. What are my options?备份持久性存储。我有哪些选择?
【发布时间】:2010-10-05 07:48:13
【问题描述】:

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

假设不可能的事情发生了,我的 mysql 服务器在一段时间内无法访问, 我想在重试几次但失败后回退到辅助持久性存储。

我有哪些选择?队列,内存缓存?

【问题讨论】:

    标签: mysql performance architecture persistence uptime


    【解决方案1】:

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

    【讨论】:

    • 感谢 FlipFlop。我会调查史达琳。 Github 正在成为项目的温床。
    【解决方案2】:

    我之前已经为此在 SQLite 中放置了一个队列。不过,就我而言,这是为了防止与 MySQL 服务器的网络链接丢失——数据是本地生成的。

    【讨论】:

      【解决方案3】:

      您可以拥有一个备份 MySQL 服务器,并在主服务器出现故障时将您的连接切换到该服务器。如果它只是一个故障转移存储,您可以在应用程序服务器上本地运行它。

      【讨论】:

        【解决方案4】:

        你说你正在接收“回调”——你还没有说清楚它们是什么。什么是协议?是否通过网络。

        如果是 HTTP,那么我想说最好的方法是,如果您的应用程序无法将数据写入永久存储,它应该向来电者,请稍后再试。

        像回调这样的异步进程应该始终能够处理下游故障并将其请求排队。

        我曾与支付服务提供商(Paypal)合作过。如果您无法完全处理请求,只需将错误发送回调用者即可。

        【讨论】:

        • 是的,提供商将通过 HTTP 调用我的服务。是的,尽管这不是 Paypal,但他们正在发送金融交易。
        猜你喜欢
        • 2014-05-05
        • 2021-02-17
        • 2011-07-12
        • 2011-04-27
        • 2017-07-25
        • 2018-11-21
        • 2012-07-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多