Я пытаюсь настроить внутренний балансировщик нагрузки TCP Google. Группа экземпляров за этим lb состоит из процессов redis-server, прослушивающих порт 6379. Из этих экземпляров redis только один является главным.
Проблема: Добавить проверку работоспособности TCP для обнаружения мастера redis и заставить lb перенаправлять весь трафик только на мастер redis.
Подходить: Добавлена проверка работоспособности TCP для порта 6379. Для отправки команды role
чтобы обработать redis-server и проанализировать ответ, я использую дополнительные параметры, указанные в проверке работоспособности. Пожалуйста, проверьте скриншот Вот.
Результат: Проверка работоспособности у всех не работает. Если я удалю необязательные параметры запроса / ответа, проверка работоспособности начнется для всех.
Отладка:
role
, он отправляет ответ, начиная с *3
(для мастера) и *5
(для раба) как и ожидалось.nc -l -p 6379
чтобы проверить, что именно получено на стороне экземпляра при проверке работоспособности. Он действительно получает role\r\n
.MONITOR
в redis-cli, чтобы посмотреть журнал команд, полученных этим процессом. Здесь нет журнала role
. Это означает, что экземпляр получает данные (role\r\n
) через tcp, но не получен процессом redis-cli (согласно MONITOR
команда) или что-то еще происходит. Пожалуйста помоги.