Перейти к основному содержимому

Управление черным списком BE

Эта тема описывает, как управлять черным списком BE.

Начиная с версии 1.5.0, Selena поддерживает функцию черного списка BE, которая позволяет запретить использование определенных узлов BE при выполнении запросов, тем самым избегая частых сбоев запросов или других неожиданных поведений, вызванных неудачными соединениями с узлами BE.

По умолчанию Selena может автоматически управлять черным списком BE, добавляя узлы BE, которые потеряли соединение, в черный список и удаляя их из черного списка при восстановлении соединения. Однако Selena не удалит узел BE из черного списка, если узел был добавлен в черный список вручную.

примечание
  • Только пользователи с привилегией BLACKLIST уровня SYSTEM могут использовать эту функцию.
  • Каждый узел FE ведет свой собственный черный список BE и не делится им с другими узлами FE.

Добавление BE в черный список

Вы можете вручную добавить узел BE в черный список BE, используя ADD BACKEND BLACKLIST. В этом операторе вы должны указать ID узла BE, который нужно добавить в черный список. Вы можете получить ID BE, выполнив SHOW BACKENDS.

Пример:

-- Получение ID BE.
SHOW BACKENDS\G
*************************** 1. row ***************************
BackendId: 10001
IP: xxx.xx.xx.xxx
...
-- Добавление BE в черный список.
ADD BACKEND BLACKLIST 10001;

Удаление BE из черного списка

Вы можете вручную удалить узел BE из черного списка BE, используя DELETE BACKEND BLACKLIST. В этом операторе вы также должны указать ID узла BE.

Пример:

DELETE BACKEND BLACKLIST 10001;

Просмотр черного списка BE

Вы можете просмотреть узлы BE в черном списке BE, используя SHOW BACKEND BLACKLIST.

Пример:

SHOW BACKEND BLACKLIST;
+-----------+------------------+---------------------+------------------------------+--------------------+
| BackendId | AddBlackListType | LostConnectionTime | LostConnectionNumberInPeriod | CheckTimePeriod(s) |
+-----------+------------------+---------------------+------------------------------+--------------------+
| 10001 | MANUAL | 2024-04-28 11:52:09 | 0 | 5 |
+-----------+------------------+---------------------+------------------------------+--------------------+

Возвращаются следующие поля:

  • AddBlackListType: Как узел BE был добавлен в черный список. MANUAL указывает, что он был добавлен в черный список вручную пользователем. AUTO указывает, что он был автоматически добавлен в черный список Selena.
  • LostConnectionTime:
    • Для типа MANUAL указывает время, когда узел BE был вручную добавлен в черный список.
    • Для типа AUTO указывает время, когда было установлено последнее успешное соединение.
  • LostConnectionNumberInPeriod: Количество отключений, обнаруженных в течение CheckTimePeriod(s), который является интервалом, с которым Selena проверяет статус соединения узлов BE в черном списке.
  • CheckTimePeriod(s): Интервал, с которым Selena проверяет статус соединения узлов BE в черном списке. Его значение равно значению, которое вы указали для параметра конфигурации FE black_host_history_sec. Единица: секунды.

Настройка автоматического управления черным списком BE

Каждый раз, когда узел BE теряет соединение с узлом FE, или запрос завершается неудачей из-за тайм-аута на узле BE, узел FE добавляет узел BE в свой черный список BE. Узел FE будет постоянно оценивать подключение узла BE в черном списке, подсчитывая его сбои соединения в течение определенного периода времени. Selena удалит узел BE из черного списка только в том случае, если количество его сбоев соединения ниже заранее заданного порога.

Вы можете настроить автоматическое управление черным списком BE, используя следующие конфигурации FE:

  • black_host_history_sec: Продолжительность времени для сохранения исторических сбоев соединения узлов BE в черном списке BE.
  • black_host_connect_failures_within_time: Порог сбоев соединения, разрешенных для узла BE в черном списке.

Если узел BE добавлен в черный список BE автоматически, Selena будет оценивать его подключение и определять, можно ли его удалить из черного списка BE. В течение black_host_history_sec, только если узел BE в черном списке имеет меньше сбоев соединения, чем порог, установленный в black_host_connect_failures_within_time, он может быть удален из черного списка BE.