【问题标题】:What is the difference between maxIdleTime and maxLifeTime in Netty HttpClient?Netty HttpClient中的maxIdleTime和maxLifeTime有什么区别?
【发布时间】:2022-01-19 17:18:04
【问题描述】:

根据documentation

ma​​xIdleTime - 频道有资格成为的时间 空闲时关闭(分辨率:ms)。默认值:最大空闲时间不是 指定。

ma​​xLifeTime - 频道符合条件的总生命周期 关闭(分辨率:毫秒)。默认值:最长寿命不是 指定。

如果我这样定义我的ConnectionProvider,我的连接何时会关闭?

ConnectionProvider.builder("fixed")
    .maxIdleTime(Duration.ofSeconds(20))
    .build() 

20 秒后?至少在 20 秒后?

如果我这样定义呢?

ConnectionProvider.builder("fixed")
    .maxLifeTime(Duration.ofSeconds(20))
    .build() 

有什么区别,我应该期待什么?

【问题讨论】:

    标签: java project-reactor reactor-netty


    【解决方案1】:

    maxLifeTime 定义连接的最大生命周期。例如,由于资源更改导致其 IP 地址已更改,因此不应始终重用与负载平衡器的连接,因此新连接应基于底层 DNS 更新以新 IP 结束。

    maxIdleTime 定义连接的最大空闲时间。例如,空闲 20 分钟后,连接将被关闭。

    【讨论】:

    • 关于maxIdleTime 示例。那么,在我的示例中,我可以确定它会在 20 秒内关闭吗? “将有资格”部分告诉我它可能不会。
    • 它并不严格,要么在连接释放回池时进行检查,要么通过可配置.evictInBackground(Duration.ofSeconds(x))的后台收割线程进行检查
    猜你喜欢
    • 2018-06-02
    • 1970-01-01
    • 2019-09-23
    • 2014-03-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多