【发布时间】:2018-11-27 05:25:15
【问题描述】:
我创建了一个使用 Jedis 库连接到 Redis 集群的 Storm 拓扑。 Storm 组件总是期望 Redis 启动并运行,然后才连接到 Redis 并订阅事件。目前我们使用 Redis 的 pub-sub 策略。
下面的代码示例解释了我在 Storm 中的 Jedis Connectivity to for Redis。
try {
jedis.psubscribe(listener, pattern);
} catch(Exception ex) {
//catch statement here.
} finally {
pool.returnResource(jedis);
}
....
pool = new JedisPool(new JedisPoolConfig(), host, port); //redis host port
ListenerThread listener = new ListenerThread(queue, pool, pattern);
listener.start();
预期行为
一旦 Redis 死机并重新上线,Storm 就会识别 Redis 的状态。当 Redis 死机并上线时,它必须不需要重新启动。
实际行为
一旦 Redis 由于任何原因重新启动,我总是必须重新启动 Storm 拓扑,然后它才会开始侦听 Redis。
问题
Redis 重启后,如何让 Storm 监听并重新连接到 Redis?任何指导将不胜感激,即。文档,论坛答案。
【问题讨论】:
标签: java redis apache-storm jedis redis-cluster