【问题标题】:High reliability of a web serviceWeb服务的高可靠性
【发布时间】:2013-07-20 06:32:00
【问题描述】:

我想做一个对第三方网络服务高度可靠的网络服务。这里的高可靠性意味着来自第三方 Web 服务的任何单个请求都将由我的 Web 服务成功处理。第三方服务没有针对失败请求的重试机制,也无法更改其请求格式(正文中包含字段和值的 http POST)。

我不考虑故障转移解决方案,例如负载均衡器后面的多个节点满足要求,因为一个节点可能会发生故障,并且负载均衡器可能在将请求从池中删除之前仍将请求路由到它。

我正在考虑使用诸如 Amazon SQS 之类的东西来接收来自第三方请求的请求并将其传递到我的 Web 服务,因为 SQS 具有重试机制。但是,这里的难点是SQS似乎要求在“消息”参数中填写内容,而这不能通过第三方服务来实现。

有办法解决吗?

【问题讨论】:

    标签: web-services amazon-sqs reliability


    【解决方案1】:

    我能想到的确保完成请求的唯一真正解决方案是向第三方 Web 服务添加一个包装器,以便它具有重试机制。包括 HA 在内的任何其他解决方案都会有故障点。考虑一下,如果 Amazon SQS 服务发生故障,您仍然会有第三方 Web 服务从停机服务请求信息并失败。

    【讨论】:

      【解决方案2】:

      我不考虑故障转移解决方案,例如多节点 负载均衡器后面满足要求,因为一个节点可能 失败并且负载均衡器仍然可以在它之前将请求路由到它 从池中移除。

      您认为 SQS 的架构是什么样的。它们在负载均衡器后面有前端。如果前端失败,那么这些请求将失败。 SQS 仍然具有高可用性,因为如果您重试请求,它很可能会成功。为避免向用户显示错误,您应该在客户端构建重试。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-10-16
        • 2013-05-14
        • 1970-01-01
        • 2013-04-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多