【发布时间】:2016-01-22 11:33:30
【问题描述】:
LeaderSelectorListener listener = new LeaderSelectorListenerAdapter()
{
public void takeLeadership(CuratorFramework client) throws Exception
{
while (true) {
try {
// ... business logic
} catch (Exception e) { // catch any exeption here
// do nothing
}
}
}
}
LeaderSelector selector = new LeaderSelector(client, path, listener);
selector.autoRequeue();
selector.start();
正如代码所示,我在业务代码中捕获了任何异常,所以即使 zookeeper 断开连接,业务代码仍然会执行,对吧?
【问题讨论】:
-
这是 Java 吗?这段代码的目的是什么(它有什么作用)?
-
是的,这是基于curator框架的代码,只是一个例子。假设我有 3 台机器,但我希望这些机器中只有 1 台运行 takeLeadership() 中的业务逻辑。
标签: apache-zookeeper distributed-system apache-curator