gpt4 book ai didi

redis - Redis集群总线端口连接上没有保持事件状态

转载 作者:行者123 更新时间:2023-12-03 06:46:36 28 4
gpt4 key购买 nike

我们的生产网络不稳定,因此发生了很多故障转移。我们注意到的一件事是,到1个机器集群总线端口的TCP连接数为3k(使用文档中的示例为16379)。这对于该计算机上的所有redis节点都在发生。

使用显示计时器选项执行netstat时,可​​以看到keepalive已关闭。

sudo netstat -anpo | grep :165 | grep -v LISTEN

tcp 10.10.111.122:16379 10.10.111.121:41227 ESTABLISHED 2571/redis-server 1 off (0.00/0/0)
...

事实是,我们只能在Redis服务器节点所在的机器上看到这些连接,但是应该关闭这些连接(我们只能从一台机器上看到它们,而从另一台机器上看不到它们)

我们使用的Redis版本3.2.8,默认情况下已启用tcp-keepalive(设置为300),并且可以看到它正在为客户端的侦听端口工作
tcp  10.10.111.122:6379  10.10.111.121:50461  ESTABLISHED 2571/redis-server  keepalive (103.28/0/0) 

为什么不适用于群集总线端口?

最佳答案

您可以使用libkeepalive:library预加载

它由一个共享库组成,该库覆盖大多数二进制文件中调用的套接字系统,而无需重新编译或修改它们。该技术基于Linux中包含的ld.so(8)加载程序的预加载功能,该功能使您可以强制以比普通优先级更高的优先级来加载共享库。

$ LD_PRELOAD=/usr/lib/libkeepalive.so KEEPCNT=20 KEEPIDLE=180 KEEPINTVL=60 /usr/bin/redis-server /etc/redis.conf

$ netstat -ton | grep ESTABLISHED | grep 17000

tcp 0 0 10.143.4.86:41046 10.143.4.87:17000 ESTABLISHED keepalive (166.82/0/0)
tcp 0 0 10.143.4.86:17000 10.143.4.89:44282 ESTABLISHED keepalive (166.82/0/0)
tcp 0 0 10.143.4.86:17000 10.143.4.89:44284 ESTABLISHED keepalive (162.73/0/0)
tcp 0 0 10.143.4.86:35134 10.143.4.89:17000 ESTABLISHED keepalive (162.73/0/0)
tcp 0 0 10.143.4.86:37218 10.143.4.87:17000 ESTABLISHED keepalive (164.78/0/0)
tcp 0 0 10.143.4.86:17000 10.143.4.87:47532 ESTABLISHED keepalive (169.38/0/0)

请引用以下链接进行实现。

https://medium.com/@rajivsharma.2205/enable-tcp-keepalive-on-redis-cluster-bus-153128e412fa

关于redis - Redis集群总线端口连接上没有保持事件状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54802865/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com