ZooKeeper пытается подключиться к уже удаленному стеку на AWS - PullRequest
0 голосов
/ 09 апреля 2019

Я регулярно наблюдаю довольно странную ситуацию, пытаясь запустить кластер Zookeeper (ZK) в Amazon Cloud.Все хорошо, если в сети нет кластера ZK, т.е. все новые экземпляры объединяются в новый кластер («холодный» запуск).Проблемы начинаются, если мне нужно запустить другой облачный стек (3 или 5 машин, не имеет значения), присоединить их к существующему кластеру ZK и удалить старый стек.

Типичный поток данных описан ниже.

  1. Облачный стек 1 начинается с нуля и образует кластер ZK.Этот кластер содержит хосты 1.1, 1.2 и 1.3 (псевдонимы).
  2. Через некоторое время облачный стек 2 запускается и присоединяется к существующему кластеру.Теперь кластер содержит хосты 1.1, 1.2, 1.3, 2.1, 2.2, 2.3.
  3. Все хосты из стека 1 переключены на «наблюдателя».
  4. Стек 1 удален.
  5. Все хосты из стека 1 удаляются из конфигурации ZK с помощью команды «reconfig -remove XXX». Проблемы начинаются здесь
  6. Стек 3 начинается.Хосты 3.1, 3.2 и 3.3 должны быть присоединены к текущему кластеру, который содержит хосты только из стек 2 * .В конфигурации кластера нет хостов из стека 1.
  7. Хосты из стека 3 пытаются подключиться к кластеру строго последовательно, один за другим, а не одновременно.

  8. Хост 3.1 присоединяется к кластеру как «наблюдатель».Проблемы по-прежнему не обнаружены.

  9. Проблемы начинаются примерно в 70% случаев (не каждый раз!), Когда новый хост 3.1 пытается переключиться на участника с помощью команды " reconfig -add XXX ».Журнал сообщает, что пытается подключиться к хостам из стека 1 , который больше не существует:
    2019-04-02 17:37:27,960 [myid:2557] - WARN  [QuorumPeer[myid=2557] 
    (plain=/0:0:0:0:0:0:0:0:2181)(secure=disabled):QuorumCnxManager@660] - 
    Cannot open channel to 2336 at election address /XX.XX.XX.11:3888
    java.net.NoRouteToHostException: No route to host (Host unreachable)

IP " XX.XX.XX.11"здесь находится хост 1.1 из стека 1. Еще одно сообщение об ошибке отображается прямо под первым:

2019-04-02 17:37:32,968 [myid:2557] - WARN  [QuorumPeer[myid=2557]
(plain=/0:0:0:0:0:0:0:0:2181)(secure=disabled):QuorumCnxManager@660] - 
Cannot open channel to 1270 at election address /XX.XX.XX.12:3888
java.net.SocketTimeoutException: connect timed out

IP-адрес" XX.XX.XX.12"здесьхост 1.2 из стека 1.

Надо сказать, что это происходит не каждый раз.Иногда все работает без проблем.Как я уже упоминал выше, проблемы возникают 2 раза с 3.

Типичный файл конфигурации до , пытающийся переключить хост 3.1 на " участник ".как это (" zoo.cfg.dynamic. [версия] ":

server.2584=XX.XX.XX.21:2888:3888:participant;0.0.0.0:2181
server.2601=XX.XX.XX.22:2888:3888:participant;0.0.0.0:2181
server.2828=XX.XX.XX.23:2888:3888:participant;0.0.0.0:2181
server.2844=XX.XX.XX.31:2888:3888:observer;0.0.0.0:2181

21, 22, 23 из стека 2, тогда как 31 из стека 3, который не могбыть преобразованным в " участник ".

Пожалуйста, помогите. Ваши советы приветствуются.

...