生菜:当所有网络流量下降时,如何使连接超时?

时间:2019-08-07 22:10:56

标签: redis timeout lettuce

我希望Lettuce根据可配置的超时将Redis连接视为失败。

  • 场景:在某个可配置的超时内(没有RST,ACK,FIN等)未收到来自Redis的网络流量。例如,服务器可能已经完全失效,或者网络路径可能已关闭。
  • 所需的行为:生菜连接进入断开状态,这意味着:
    • 如果设置了DisconnectedBehavior.REJECT_COMMANDS,所有其他命令将立即失败
    • 背景自动重新连接过程开始

我知道Lettuce支持“命令超时”,这适用于每个单独的命令。但是,当命令超时时,它不会更改连接状态。因此,如果我将命令超时设置为100毫秒,然后开始丢弃所有网络流量,则发出的每个命令将等待100毫秒。

测试失败说明要点:https://gist.github.com/vobarian/1541349a32ddaf83337963a405e758ff

用例:我们正在实现一个以Redis作为共享存储的限速器,并且希望它无法打开。也就是说,如果出现任何问题,它应该允许所有请求快速通过 ,直到速率限制后端再次可用。

0 个答案:

没有答案