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