Назад | Перейти на главную страницу

Ошибка Redis master-slave «соединение потеряно»

У меня две докер-машины:

$ docker-machine ls
NAME           ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER    ERRORS
redis-master   *        virtualbox   Running   tcp://192.168.99.100:2376           v1.10.1   
redis-slave1   -        virtualbox   Running   tcp://192.168.99.101:2376           v1.10.1   

Я пытаюсь развернуть репликацию redis master / slave на этих машинах, поэтому на каждой из них я запускаю контейнер REDIS + контейнер SENTINEL и запускаю SLAVEOF на главном экземпляре Redis. Сначала все работает нормально, но через некоторое время (1-2 минуты) мастер распечатывает # Connection with slave 192.168.99.101:6379 lost. сообщение в журнале и ведомом журнале # Connection with master lost. и бесконечно (безуспешно) пытается выполнить повторную синхронизацию с мастером.

Версия REDIS, которую я использую, 3.0.7 (также с использованием sentinel, поставляемого с redis).

Вот журнал MASTER (журналы redis и sentinel): http://pastebin.com/raw/MvwCTeEu

Вот журнал SLAVE (журналы redis и sentinel): http://pastebin.com/raw/vV6e3utK

sentinel.conf:

port 26379
dir /tmp
sentinel announce-ip <SENTINEL_IP>
sentinel monitor mymaster <MASTER_IP> 6379 2
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
sentinel announce-port 26379

redis.conf: http://pastebin.com/raw/dqFYzTwz (на самом деле это конфигурация REDIS по умолчанию, кроме repl-backlog-size который я увеличил до 100mb чтобы проверить, не поможет ли это, но не помогло).

Это странная проблема, потому что сначала репликация / синхронизация работает нормально, но, как я уже сказал, через 1-2 минуты соединение master-slave теряется. В это время ни на одном экземпляре не выполняется ни одна команда redis / sentinel. Просто завожу 4 емкости и оставляю на 1-2 минуты ...