LINUX.ORG.RU
ФорумAdmin

Некорректная работа хэлсчека в ProxySQL

 , ,


0

1

Вопрос конкретно по балансировщику ProxySQL.

Добавил ноды MySQL в пул ProxySQL, ноды доступны и ProxySQL их видит:

ProxySQLAdmin> SELECT hostgroup_id, hostname, status FROM runtime_mysql_servers;
+--------------+---------------------------------------+--------+
| hostgroup_id | hostname                              | status |
+--------------+---------------------------------------+--------+
| 1            | serv1                                 | ONLINE |
| 0            | serv2                                 | ONLINE |
+--------------+---------------------------------------+--------+
ProxySQLAdmin> SELECT hostgroup_id, hostname, status FROM mysql_servers;
+--------------+---------------------------------------+--------+
| hostgroup_id | hostname                              | status |
+--------------+---------------------------------------+--------+
| 1            | serv1                                 | ONLINE |
| 0            | serv2                                 | ONLINE |
+--------------+---------------------------------------+--------+

Проблема в том, что если на одной ноде закрыть порт 3306 (дабы сэмулировать проблему), то статус ONLINE не изменится (сначала думал, что дело в таймаутах, но нет).

Если сделать systemctl restart proxysql то

ProxySQLAdmin> SELECT hostgroup_id, hostname, status FROM mysql_servers;
+--------------+---------------------------------------+--------+
| hostgroup_id | hostname                              | status |
+--------------+---------------------------------------+--------+
| 0            | serv1                                 | ONLINE |
| 1            | serv2                                 | ONLINE |
+--------------+---------------------------------------+--------+
ProxySQLAdmin> SELECT hostgroup_id, hostname, status FROM runtime_mysql_servers;
+--------------+---------------------------------------+---------+
| hostgroup_id | hostname                              | status  |
+--------------+---------------------------------------+---------+
| 0            | serv1                                 | ONLINE  |
| 1            | serv2                                 | SHUNNED |
+--------------+---------------------------------------+---------+

Если же теперь открываем обратно порт на той ноде (без перезапуска proxysql), на которой его закрывали, то происходит такое:

ProxySQLAdmin> SELECT hostgroup_id, hostname, status FROM mysql_servers;
+--------------+---------------------------------------+--------+
| hostgroup_id | hostname                              | status |
+--------------+---------------------------------------+--------+
| 0            | serv1                                 | ONLINE |
| 0            | serv2                                 | ONLINE |
| 1            | serv2                                 | ONLINE |
+--------------+---------------------------------------+--------+
3 rows in set (0.00 sec)

ProxySQLAdmin> SELECT hostgroup_id, hostname, status FROM runtime_mysql_servers;
+--------------+---------------------------------------+--------+
| hostgroup_id | hostname                              | status |
+--------------+---------------------------------------+--------+
| 0            | serv1                                 | ONLINE |
| 1            | serv2                                 | ONLINE |
| 0            | serv2                                 | ONLINE |
+--------------+---------------------------------------+--------+
3 rows in set (0.02 sec)

Что не так? Откуда берется ещё одна строка в таблице с нодами после возвращения в строй недоступной ноды и почему без передергивания proxysql статус реально проблемной ноды не меняетсЯ?



Последнее исправление: yellowboy (всего исправлений: 4)

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.