我被问到一个面试问题(针对Ruby on Rails Web开发人员的位置),设计一个检测第三方API是否正常运行的后端。"我实际上很少知道问题是指的是什么(面试官急于离开,可以理解),所以你们知道如何研究这个领域并了解更多信息吗?
答案 0 :(得分:3)
看一下"circuit breaker"模式。
基本思想是您尝试进行第三方API调用,有时API调用会因意外错误而失败。如果这些错误经常发生,那么您可以推断出API是" down"。
虽然API已关闭,但您无法使用它。相反,您可以优雅地解决缺少该API的问题,可能是通过排队或向您的用户显示消息,例如,"我们的应用程序的这部分当前不可用"。重要的一点是,由于一个API已关闭,您不能让整个应用程序崩溃。
从那时起,您假设API仍然停止,直到经过一段时间,此时您开始尝试再次使用它。如果API调用成功且没有错误,那么您可以推断出API现在是" up"。
一个有趣的Ruby gem正式化了这种模式被称为" stoplight"。