Zookeeper LeaderSelectorListenerAdapter Invalid - PullRequest
       29

Zookeeper LeaderSelectorListenerAdapter Invalid

0 голосов
/ 26 февраля 2019

У меня проблемы с выборами хозяев.Я использовал класс LeaderSelectorListenerAdapter.

Ситуация выглядит так:

Я запускаю 3 экземпляра, чтобы проверить это:

LeaderSelectorListenerAdapter listenerAdapter = new LeaderSelectorListenerAdapter() {
            @Override
            public void takeLeadership(CuratorFramework curatorFramework) throws Exception {
                System.out.println("become Master");
                while (true) {
                    System.out.println("lock master");
                    Thread.sleep(2000);
                }
            }
        };
        LeaderSelector selector = new LeaderSelector(client, path, listenerAdapter);
        selector.autoRequeue();
        selector.start();

Затем я останавливаюсьзоопарк, подождите немного и запустите зоопарка.Экземпляр получит событие SUSPENDED и событие RECONNECTED .Один из участников должен снова стать мастером.

В ходе моего тестирования я обнаружил, что остановка и запуск зоопарка на некоторое время разделены.Если разделенное время короткое, например, короче 1 секунды, никто не становится мастером, если время больше, кто-то становится мастером.

Как я могу решить эту проблему?Я хочу, чтобы всегда был мастер.

...