У меня две докер-машины:
$ 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 минуты ...