首页 > 数据库 >【Azure Redis】部署在AKS中的应用,连接Redis高频率出现timeout问题

【Azure Redis】部署在AKS中的应用,连接Redis高频率出现timeout问题

时间:2024-11-22 21:32:16浏览次数:1  
标签:timeout AKS Redis 更新 连接 NAT Gateway

问题描述

部署在AKS中的应用,连接Redis高频率出现timeout问题

 

问题解答

查看Redis状态,没有任何异常,服务没有更新,Service Load, CPU, Memory, Connect等指标均正常。在排除Redis端问题后,转向了AKS中。

开始调查AKS的网络状态。最终发现每次Redis客户端出现超时问题时,几乎都对应了AKS NAT Gateway的更新事件,而Redis服务端没有任何异常。因此,超时问题很可能是由于NAT Gateway更新事件导致TCP连接被重置。

NAT更新原理: 在NAT Gateway的底层组件更新初期,被更新的内部实例将不会接受新的连接请求。在接下来的更新时间里,所有传入的数据包都将收到TCP RST(重置)消息作为响应。而后存量连接被清空,实例就会进入更新流程。此操作确保在更新过程中,客户端可以自动与其他未更新实例重新建立连接,从而尽量减少对业务的影响。

 

如何监控NAT更新: 可以通过NAT Gateway的Datapath Availability的指标来监控NAT网关是否发生了更新。在更新期间NAT Gateway的Datapath Availability会略微下降至98%及以下, 这可以作为判断维护状态的一个参考 :  Azure NAT 网关的指标和警报 - Azure NAT Gateway | Microsoft Learn  

面对如此情况,可作如下调整:

  1. Redis设置较短的超时时间,这样可以更快地在客户端层面重新建立连接,同时,负面效果是提高了超时报错的几率。对于高操作频率的Redis,较短的超时时间依然是一个比较好的方案。
  2. 可以将AKS 所在的Linux系统中的net.ipv4.tcp_retries2参数修改得更小,使TCP底层连接更快地重连。https://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-best-practices-connection#tcp-settings-for-linux-hosted-client-applications
  3. 可以尝试让Redis客户端建立更多连接数量,通过分散的出站连接,减少NAT Gateway实例更新对客户端连接的影响。

 

 

标签:timeout,AKS,Redis,更新,连接,NAT,Gateway
From: https://www.cnblogs.com/lulight/p/18563770

相关文章

  • 3-测试go-redis+redsync实现分布式锁 --开源项目obtain_data测试
    3-测试go-redis+redsync实现分布式锁1.go-redis+redsync实现分布式锁测试效果a.测试页面测试页面:--这里使用Postman来做测试http://127.0.0.1:8000/goods/lockbuyoneb.测试效果查看终端: --使用ab软件并发100个请求请求:$ab-c100-n100http://127.0.0.1:8000......
  • Redis的特性&&ubuntu进行安装
    文章目录1.六大特性1.1内存存储数据1.2可编程1.3可扩展1.4持久化1.5集群1.6高可用1.7速度快2.具体应用场景(了解)3.Ubuntu安装Redis3.1安装指令3.2查看状态3.3查找配置文件3.4修改文件内容3.5重启服务器生效3.6安装客户端并进行检查4.Redis客户端介绍1.六大特性redis......
  • Linux-Cent7.9 redis路径查找 | 删除redis所有缓存
    查看redis端口命令[root@VM-20-17-centosetc]#ps-ef|grepredisredis125710Nov20?00:02:06/usr/bin/redis-server0.0.0.0:6379root63406653015:27pts/000:00:00grep--color=autoredis发现redis-server对应端口为1257查看r......
  • kubeadm init 或 join 失败 [kubelet-check] Initial timeout of 40s passed.
    前言kubeadm初始化或join时,报错:[etcd]CreatingstaticPodmanifestforlocaletcdin"/etc/kubernetes/manifests"I112210:50:39.22434151720local.go:65][etcd]wroteStaticPodmanifestforalocaletcdmemberto"/etc/kubernetes/manifests/e......
  • 超简约美观的Redis可视化工具Redis Desktop Manager(含安装包)
    前言Redis于技术圈可谓众人皆知。以往在其操作上,常需于客户端手动敲指令,这种方式耗时费力,在项目紧急、面临发版上线压力时,尤显不便。此前所用的Redis可视化工具较为老旧,使用体验欠佳。幸得同事推荐一款新工具,试用之下,顿觉其便捷高效,似有潜力大幅优化Redis操作流程,令人满怀......
  • Redis大Key问题如何排查?如何解决?
    Redis大Key是指存储在Redis中的键值对,其中键对应的value占用了较大的内存空间,或者包含了大量的元素。例如,一个存储了数百万个元素的集合(Set)类型的键,或者一个存储了一个很大的字符串(长度可能达到几十MB甚至更大)的键都被认为是大Key。Redis大Key并没有统一的固定标......
  • redis 3 种缓存更新策略
    今天跟大家聊聊,常见的3种缓存更新策略。CacheAside(旁路缓存)策略;Read/WriteThrough(读穿/写穿)策略;WriteBack(写回)策略;实际开发中,Redis和MySQL的更新策略用的是CacheAside,另外两种策略主要应用在计算机系统里。CacheAside(旁路缓存)策略CacheAside(旁路缓存)策......
  • redis做一个浏览量排行
    浏览量统计的频率是相当高的,如果使用数据库来统计多少会影响系统的性能。而redis是一个高性能的内存数据存储系统,可以短时间内处理大量的读写操作,来做浏览量的统计是很不错的。<?php//连接Redis$redis=newRedis();$redis->connect('127.0.0.1');//模拟用户访问$use......
  • Redis 的 Quicklist 技术竟然能让内存占用降低 50%!
    《Redis的Quicklist技术竟然能让内存占用降低50%!》在当今的互联网时代,数据的存储和管理变得至关重要。Redis作为一款高性能的内存数据库,被广泛应用于各种场景中。而Redis的Quicklist技术更是为我们带来了惊喜,据说它能够让内存占用降低50%!那么,Quicklist究竟是何方神圣......
  • 阿里面试:亿级 redis 排行榜,如何设计?
    本文原文链接文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面试必备+大厂必备+涨薪必备免费赠送:《尼恩技术圣经+高并发系列PDF》,帮你实现技术自由,完......