iOS客户端是否应重试服务器(微服务)故障?

时间:2016-02-10 12:44:59

标签: ios mobile client-server microservices conceptual

我正在构建一个由iOS应用程序组成的项目,该应用程序通过HTTP与微服务进行通信有很多原因:验证用户身份,保存数据,检索数据等等。

如果客户端失败,则应用程序崩溃。如果可能,将在以下版本中报告并修复此问题。

以下是我的问题:

  1. 如果服务器失败,则会返回错误的HTTP代码(4XX,5XX等)。 iOS应用应该如何反应?它应该接受失败并通知用户吗?应该重试吗?多少次?

  2. 如果数据库失败,服务器将通过JSON返回错误消息。同样,iOS应用程序应该如何反应?

  3. 答案取决于所使用的技术吗?

1 个答案:

答案 0 :(得分:1)

它可能依赖于域名和请求的重要性;例如创建银行帐户转帐的请求与发布状态更新的请求不会被创建平等。

话虽如此,他们可能仍然在技术上以同样的方式处理错误。即使在服务器故障或数据库故障的情况下,我的2美分也是要求重试。这可能与移动客户端服务器应用程序的软件开发过程有关,但我认为大多数修复本身应该在服务器端。这是因为人们可能没有更新iPad而烦恼他们做升级是用户体验不佳。将修复程序的责任放在服务器端也有助于避免在它到达应用程序商店之前通过Google或Apple审批流程。

继续前进,我建议如下:

  • 在移动应用程序中具有弹性并处理所有错误而不是让应用程序崩溃:使用try / catch块来处理错误,要求用户重试,或让他们知道您已报告错误问题。如果可能,请将错误日志发送到服务器。
  • 质量检查并彻底测试,然后再将其放入应用商店,以避免因错误修复而多次部署。
  • 构建您的软件,以便修复通常发生在服务器端,以最大限度地减少客户端头痛(以及错误的实时代码)。但是,在移动应用程序中应该处理在发送到服务器的请求中没有提供足够信息的错误 - 但是应该通过严格的QA过程来缓解这种问题。

希望这有帮助。