【问题标题】:correct pattern of Ktor's HttpClient usageKtor 的 HttpClient 使用的正确模式
【发布时间】:2020-10-07 09:12:12
【问题描述】:

在 KTOR 中 HttpClient 的正确使用模式是什么。我应该像每个应用生命周期的单例一样使用它,还是应该根据每个请求创建它?

【问题讨论】:

    标签: kotlin ktor


    【解决方案1】:

    如果您需要连接到多个逻辑服务,我会说每个应用程序可能有多个客户端。 但是,如果您正在处理一个单一的 HTTP 服务器,最好有一个客户端,因为它建立并保持与服务器的连接。它还分配以下资源:准备好的线程、协程和连接。如果您有多个客户端,您可能会用完这些资源。

    【讨论】:

      【解决方案2】:

      我应该像每个应用生命周期的单例一样使用它,还是应该根据每个请求创建它

      创建 http 客户端实例通常会占用大量资源,因此您不应为每个请求都创建客户端实例。您应该每个应用的生命周期只创建一个 http 客户端实例,在应用中需要的任何地方注入,确保

      • 您使用了正确的 http 客户端配置,例如线程池大小、超时等
      • 您是releasing 应用程序关闭时的资源。

      客户端可以配置HttpClientEngineConfig(doc) 或其任何继承者。文档here中的更多详细信息。

      【讨论】:

        猜你喜欢
        • 2019-03-10
        • 2020-10-26
        • 2019-07-07
        • 2019-11-04
        • 2019-10-14
        • 2023-03-11
        • 2022-11-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多