分布式锁Redisson入门案例报错:java.io.IOException: 远程主机强迫关闭了一个现有的连接

问题描述

在学习黑马点评:分布式锁Redisson快速入门时遇到的问题:

image-20230204161611752

原因分析

Redisson入门案例

Redisson配置类

image-20230204162148278

使用Redisson的类:VoucherOrderServiceImpl

image-20230204162533317

启动项目(只启动一个8081服务),使用jmeter测试:

image-20230204162741538

测试结果:mysql数据库正确被修改,但是idea控制台报错信息如上

可能存在的原因

  1. Redis超过了最大连接数
  2. 本地Redis(Windows)原因
  3. tcp-keepalive和关闭超时时间的问题

解决过程

Redis超过了最大连接数

  1. 查看当前连接数

    info clients 
    
  2. 查看最大连接数

    config get maxclients
    

测试结果:

image-20230204165018033

如果达到最大连接数后,会导致后面的连接都连接失败,但是发现最大连接数为10000,应该不是这个问题

本地Redis(Windows)原因

由于vmware 启动缓慢,为了方便,使用Windows上安装的Redis做测试,可能存在一些问题

推荐文章:使用Redisson与SpringBoot时出现java.io.IOException: 远程主机强迫关闭了一个现有的连接异常_sodaaxd的博客-优快云博客_springboot配置redis远程主机强迫关闭了一个现有的连接。

查看当时开启Redis命令:

image-20230204165518485

应该也没问题

tcp-keepalive和关闭超时时间的问题

推荐文章:解决springboot2整合Redis 后某个接口报错 java.io.IOException: 远程主机强迫关闭了一个现有的连接

Linux版Redis解决办法参考上述文章

Windows版Redis修改 [redis.windows.conf] 文件

  1. 查看 tcp-keepalive

    image-20230204170654938

  2. 保存文件,重启Redis(这里我修改为5,自行决定)

  3. 重启项目,恢复mysql数据(虽然控制台报错了,但数据依然正常被修改),jmeter再测

    控制台未报错:

    image-20230204171635006

    mysql正常更新:

    image-20230204171838557

  4. 完美解决bug

关闭超时问题暂未发现,如有遇到可以参考这篇文章:Spring Boot整合Redis报错:java.io.IOException: 远程主机强迫关闭了一个现有的连接

给自己打个广告:最近在学黑马程序员Redis入门到实战教程,如果你也在学习这门课程,可以看我写的黑马点评系列文章(持续更新中),希望对你有所帮助

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GaleTeng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值