Я использую CuratorFramework (я все еще новичок), чтобы подключиться к экземпляру Zookeeper. Я хотел бы импортировать конфигурацию, но до этого я хотел бы проверить, что моя программа может подключиться к Zookeeper. До сих пор у меня есть что-то вроде этого:Как проверить программно, если Zookeeper запущен?
public Boolean zookeeperRunning() {
CuratorFramework curatorFramework =
CuratorFrameworkFactory.newClient(zookeeperConn, new RetryOneTime(1));
curatorFramework.start();
CuratorZookeeperClient zkClient = curatorFramework.getZookeeperClient();
return zkClient.isConnected();
}
Я уже начал Zookeeper на моей локальной машине, и я проверил связь с zkCli и клиент может подключиться к нему. Переменная zookeeperCon установлена в «127.0.0.1:2181» (я также пробовал с localhost: 2181). Проблема в том, что указанный выше метод всегда возвращает false, несмотря на то, что zkServer работает n. Скорее всего, синтаксис неверен, но я не смог найти решение в Интернете. Не могли бы вы помочь мне, почему приведенный выше код не может найти zkServer, который работает и работает?
Извините, если мой вопрос глупый, но как выше метод возвращает логическую переменный? Я хотел бы, чтобы мой метод имел следующую подпись: "public Boolean zookeeperRunning() {}" –
Вы можете установить глобальный логический флаг каждый раз, когда stateChanged вызывается и возвращается из getZKState(). – bachr