基于keepalived的redis通信链接数测试

原创 2013年12月02日 15:08:56

使用keepalived做负载均衡后发现了一个问题

作为realserver的redis服务器上有许多打开的监听连接长久时间的不关闭

做个测试,检查下问题的所在

初步判断是和客户端使用redis链接的方式有关

其次是由于网络波动造成的连接中断,由于keepalived的原因无法关闭realserver上被中断的tcp连接

以下实验均没有在redis设置客户端连接超时时间


连接池模式

连接池模式下redis服务器上连接数比较恒定,增长速度较慢

一、首先采用直连的方式,客户端采用连接池方式,直接和redis服务器通信,通过制造异常和插拔网线强制中断连接

a、正常通信连接池模式:

开启多个进程,然后关闭进程。如果redis设置了客户端连接超时时间,则等待响应的时间超时。标定连接运行的正常状态下变化。多进程,正常读写。停止网站服务后,redis服务器上的连接自动释放。

b、不正常通信连接池模式:

多进程,主动抛出异常。停止网站服务后,redis服务器上的连接自动释放。

c、不正常网络模式:

开启多个进程,然后关闭进程,不抛出异常。以插拔网线模拟网络波动。

(1)在插上网线后重启网站服务,redis服务器上的连接自动释放。

(2)重启网站服务后插上网线,redis服务器上的连接不自动释放。

二、通过keepalived的方式,客户端采用连接池方式,直接和redis服务器通信,通过制造异常和插拔网线强制中断连接

a、正常通信连接池模式:

开启多个进程,然后关闭进程。如果redis设置了客户端连接超时时间,则等待响应的时间超时。标定连接运行的正常状态下变化。多进程,正常读写。停止网站服务后,redis服务器上的连接自动释放。

b、不正常通信连接池模式:

多进程,主动抛出异常。停止网站服务后,redis服务器上的连接自动释放。

c、不正常网络模式:

(1)在插上网线后重启网站服务,redis服务器上的连接自动释放。

(2)重启网站服务后插上网线,redis服务器上的连接不自动释放。


非连接池模式

此模式下redis服务器上连接数增长快速

一、首先采用直连的方式,客户端采用连接池方式,直接和redis服务器通信,通过制造异常和插拔网线强制中断连接

a、正常通信连接池模式:

开启多个进程,然后关闭进程。如果redis设置了客户端连接超时时间,则等待响应的时间超时。标定连接运行的正常状态下变化。多进程,正常读写。停止网站服务后,redis服务器上的连接自动释放。但是不重启网站服务的话连接会一直保持

b、不正常通信连接池模式:

多进程,主动抛出异常。停止网站服务后,redis服务器上的连接自动释放。

c、不正常网络模式:

开启多个进程,然后关闭进程,不抛出异常。以插拔网线模拟网络波动。

(1)在插上网线后重启网站服务,redis服务器上的连接自动释放。

(2)重启网站服务后插上网线,redis服务器上的连接不自动释放。

二、通过keepalived的方式,客户端采用连接池方式,直接和redis服务器通信,通过制造异常和插拔网线强制中断连接

a、正常通信连接池模式:

开启多个进程,然后关闭进程。如果redis设置了客户端连接超时时间,则等待响应的时间超时。标定连接运行的正常状态下变化。多进程,正常读写。停止网站服务后,redis服务器上的连接自动释放。但是不重启网站服务的话连接会一直保持

b、不正常通信连接池模式:

多进程,主动抛出异常。停止网站服务后,redis服务器上的连接自动释放。

c、不正常网络模式:

(1)在插上网线后重启网站服务,redis服务器上的连接自动释放。但是会有少数几个释放不掉

(2)重启网站服务后插上网线,redis服务器上的连接不自动释放。


结论:

1.redis客户端最好使用连接池模式

2.网络波动会造成大量连接进入半连接状态,长久处于监听状态

3.在redis服务端需要对客户端连接设置超时时间

4.redis客户端的Dispose方法似乎是无效的

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

java链接Redis实例

  • 2015年05月15日 11:28
  • 221KB
  • 下载

Redis: Jedis 源代码剖析1-链接建立和收发命令

Jedis作为Redis Java语言推荐的客户端被广泛使用。让我们一探Jedis源代码究竟。...

JAVA链接Redis需要使用到的jar包

  • 2017年03月04日 14:41
  • 226KB
  • 下载

redis哨兵链接池java实现

  • 2017年08月22日 23:19
  • 7KB
  • 下载

使用ServiceStackRedis链接Redis简介

目前网上有一些链接Redis的C#客户端工具,这里介绍其中也是目前我们企业版产品中所使用的ServiceStackRedis , 链接地址:       https://github.com/m...

keepalived redis config file

  • 2014年08月07日 14:21
  • 869B
  • 下载

keepalived-redis高可用配置脚本

  • 2014年12月12日 15:03
  • 23KB
  • 下载

java程序 链接centos7环境中的redis

java程序连接redis   1,maven仓库的地址如下,版本看自己需求,我用的是2.9.0,如果不是用的maven自行下载对应的jar包 redis.c...
  • keepd
  • keepd
  • 2017年05月23日 14:22
  • 171

采用Keepalived实现Redis双机高可用

  • 2013年01月09日 22:13
  • 1.31MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:基于keepalived的redis通信链接数测试
举报原因:
原因补充:

(最多只允许输入30个字)