我有一个在我的Flink流作业中扩展RichFlatmapFunction
的类。我在Jedis
方法中创建了一个open()
实例,并在(jedis.close())
方法中将其关闭close()
,以便通过转换的所有记录都使用相同的{{1}实例。这种方法之前没有给我任何连接错误。但是在最近的一次工作中,我得到了错误,
" redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketException:连接重置"。
这可能是因为我正在为所有记录使用相同的jedis实例(仍保持打开状态)吗?创建实例时,我没有设置任何超时。所以超时也是默认值。
如果我使用JedisPool来检索和关闭每条记录的Jedis实例,我是否能够避免此错误?
答案 0 :(得分:1)
连接重置发生在网络级别的服务器和客户端连接之间出现任何中断,即任何网络丢失,防火墙或应用程序崩溃或意图关闭
由于空闲超时,还有可能意图关闭。
现在开始使用JedisPool,使用连接池是多线程环境中的最佳实践,因为重用连接是有效的。所以请尝试使用正确的配置