首页 > 其他分享 >Lettuce 实战之连接超时问题

Lettuce 实战之连接超时问题

时间:2024-04-30 23:58:09浏览次数:22  
标签:实战 重连 lettuce redis TCP 重试 Lettuce 超时 连接

问题

使用lettuce作为redis连接池,在访问redis时,偶尔会抛出RedisCommandTimeoutException,但隔一会儿又好了。

为什么lettuce有自动重连机制,却还是会出现连接超时的问题?为什么lettuce在连接断掉后,没有立即重连,而是需要等待十多分钟才重新连接?

在lettuce client和redis server之间创建TCP连接后,由于网络等原因导致TCP连接中断后,lettuce client等待TCP连接进行重试,直到重试完成后还是无法成功才创建新的连接。重试次数与操作系统配置有关。

根据下述图表,在重试15次时,超时时间约为13.4分钟,这就是为什么lettuce的自动重连,会等待十多分钟才进行重连。

重传机制参考 https://pracucci.com/linux-tcp-rto-min-max-and-tcp-retries2.html

查看TCP重试次数配置

cat /proc/sys/net/ipv4/tcp_retries2

解决方法

  • 一是调低操作系统中TCP重试的次数,例如5次,这样在连接断掉后,等待几秒钟就会立即重联。
  • 二是在获取redis connection时,验证该连接是否可用,不可用则创建一个新的连接返回,配置如下
LettuceConnectionFactory factory = new LettuceConnectionFactory();
factory.setValidateConnection(true);

标签:实战,重连,lettuce,redis,TCP,重试,Lettuce,超时,连接
From: https://www.cnblogs.com/cd-along/p/18168898

相关文章

  • Redis 高可用之主从哨兵集群实战
    搭建集群架构规划为一个主库节点,一个从库节点,三个哨兵节点,其中主从库节点内存配置需保持一致,哨兵节点对配置要求较低,可配置在主从节点上。搭建主库主从库节点内存配置需保持一致,主从库连接密码保持一致。主库不进行任何持久化配置,交给从库完成。编写配置文件需要注意的是,主库......
  • 后记-书生浦语大模型实战营第二期参营总结
    书生浦语大模型实战营第二期参营总结动机在历史洪流面前,人轻浮得像一粒沙:今年的Java后端又要炸了。作为一条研究方向为图像处理、导师不放暑期实习的硕士牛马,自觉疲惫。既然对就业的准备暂时略感疲惫,科研又有导师天天push自然不会太主动,那就换换心情学点LLM相关的内容满足自己的......
  • js逆向实战之数位观察响应数据解密
    url:https://www.swguancha.com/home/city-detail?code=310100分析过程抓数据包,发现回显数据是加密字符串。对于这种回显数据解密,大概率通过拦截器实现,搜索interceptors。只需关注响应拦截器,一共两处。第一处,只是对字符串的弹出和插入操作,不是。第二处,可以看到de......
  • PHP框架Laravel+Vue3+前后端分离开发模式+实战项目
    1、本实战项目采用前后端分离的开发模式,前端框架vue3,后端框架laravel10。所谓的前后端分离的开发,就是有别于利用cookie,session的基于会话机制的开发模式;前后端分离的开发模式是基于jwt的开发模式,也就是说后端的接口数据不仅可以支持web页面,也可以支持微信小程序,公众号,app等移动端......
  • 通义灵码实战系列:一个新项目如何快速启动,如何维护遗留系统代码库?
    作者:别象进入2024年,AI热度持续上升,翻阅科技区的文章,AI可谓是军书十二卷,卷卷有爷名。而麦肯锡最近的研究报告显示,软件工程是AI影响最大的领域之一,AI已经成为了软件工程的必选项,也有研究称开发者每天的事务性工作可能占到了七成左右,比如单侧编写等,而这部分恰好是AI所擅长......
  • 通义灵码实战系列:一个新项目如何快速启动,如何维护遗留系统代码库?
    作者:别象进入2024年,AI热度持续上升,翻阅科技区的文章,AI可谓是军书十二卷,卷卷有爷名。而麦肯锡最近的研究报告显示,软件工程是AI影响最大的领域之一,AI已经成为了软件工程的必选项,也有研究称开发者每天的事务性工作可能占到了七成左右,比如单侧编写等,而这部分恰好是AI所擅长......
  • 【发现一个小问题】golang http client: 配置了Client 对象的 Timeout 就会导致 conte
    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!cnblogs博客zhihuGithub公众号:一本正经的瞎扯我这样初始化了客户端:varclient=http.Client{Timeout:time.Duration(1000)*time.Millisecond,}然后在request创建过程中使用了context的timeout机制:tim......
  • 云原生|实战:快速搭一个Kubernetes集群(一)
    Kubernetes从2014年正是发布到现在已经快10个年头了,已经成为容器编排的领导者,而基于Kubernetes的开源项目,各个ICT公司都开启了自己的发行版本,这些版本通常针对不同的使用场景和需求进行了特定的优化,旨在简化Kubernetes的安装、配置和管理过程,以下是一些主要的Kubernetes发行版本:M......
  • js逆向实战之集思录登录参数加密解析
    url:https://www.jisilu.cn/account/login/分析过程输入用户名和密码,抓包。(因为是测试,输入的账号和密码都是123456)可以看到用户名和密码都被加密了,且是被同一种加密算法加密的。搜索关键词user_name,有很多条记录。一个一个看,很快就可以确定加密的位置。打断点,重新......
  • SQL实战(二)——数据类型
    MySQL数据类型MySQL中定义数据字段的类型对你数据库的优化是非常重要的。MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。数值类型MySQL支持所有标准SQL数值数据类型。这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以......