Flink

时间:2017-12-19 11:47:37

标签: apache-flink flink-streaming jedis

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

  

" redis.clients.jedis.exceptions.JedisConnectionException:   java.net.SocketException:连接重置"。

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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