我有一个类扩展了 RichFlatmapFunction
在我的工作中。我创造了一个 Jedis
中的示例 open()
方法并关闭它 (jedis.close())
在 close()
方法,以便通过转换的所有记录使用相同的 Jedis
示例。这种方法以前没有给我任何连接错误。但在最近的一次工作中,我犯了一个错误,
“redis.clients.jedis.exceptions.jedisconnectionexception:java.net.socketexception:connection reset”。
这可能是因为我对所有记录都使用了相同的绝地示例(它仍然是开放的)?我在创建示例时没有设置任何超时。所以超时也是默认值。
如果我使用jedispool来检索和关闭每条记录的绝地示例,我能避免这个错误吗?
1条答案
按热度按时间hgc7kmma1#
当服务器和客户端之间的连接在网络级别中断时,即任何网络丢失、防火墙或应用程序崩溃或计划关闭时,就会发生连接重置
还有一种可能是由于空闲超时而有意关闭。
现在谈到使用jedispool,使用连接池是多线程环境中的最佳实践,因为重用连接是有效的。因此,请尽量使用它们与适当的配置