【问题标题】:How to make external api call more efficient如何让外部api调用更高效
【发布时间】:2021-12-22 16:41:00
【问题描述】:

我正在构建一个货运跟踪系统。我有一个外部服务,我可以调用 API 来获取发货状态。每当发货状态发生变化时,我都想得到通知。

调用外部 api 检查货物状态的最有效方法是什么?想象一下,我有 100 万份货物要跟踪。

【问题讨论】:

    标签: system-design


    【解决方案1】:

    您应该尝试设置一个webhook 从外部服务到您的服务器。当货件状态发生变化时,外部 API 应调用您服务器上的端点。对于像您这样状态发生变化且需要通知您的用例,这是一种非常常见的做法。

    否则,您只需要定期轮询 API。我建议让您的电话符合预期的状态更新模式(例如,如果货件通常至少需要 2 天才能更新,那么请等待 2 天再检查状态更新)

    【讨论】:

    • 可以通过合并请求来减少轮询。包括您想要状态的所有货件的列表,因此您只需要一个请求和响应。如果您无法进行合并,缓存可能是另一种选择。如果请求率非常高(每秒几个),但您可以容忍更多延迟,缓存服务器可以将请求分组并发送它们,例如1 秒、10 秒等
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-08
    • 2010-10-18
    • 1970-01-01
    • 2014-10-15
    • 2017-09-12
    • 2015-08-31
    • 2011-10-03
    相关资源
    最近更新 更多