Flink中的Redis连接重置

问题描述 投票:0回答:1

我有一个类在我的Flink流作业中扩展了RichFlatmapFunction。我在Jedis方法中创建了一个open()实例,并在(jedis.close())方法中关闭它close(),以便通过转换的所有记录都使用相同的Jedis实例。这种方法之前没有给我任何连接错误。但在最近的一份工作中,我收到了错误,

“redis.clients.jedis.exceptions.JedisConnectionException:java.net.SocketException:Connection reset”。

这可能是因为我正在为所有记录使用相同的jedis实例(仍保持打开状态)吗?创建实例时,我没有设置任何超时。所以超时也是默认值。

如果我使用JedisPool来检索和关闭每条记录的Jedis实例,我是否能够避免此错误?

apache-flink flink-streaming jedis
1个回答
1
投票

连接重置发生在网络级别的服务器和客户端连接之间出现任何中断,即任何网络丢失,防火墙或应用程序崩溃或意图关闭

由于空闲超时,还有可能意图关闭。

现在开始使用JedisPool,使用连接池是多线程环境中的最佳实践,因为重用连接是有效的。所以请尝试使用正确的配置

© www.soinside.com 2019 - 2024. All rights reserved.