Spec-Zone.ru › MySQL Shell 9.2

7.8.4 Редактирование правил маршрутизации

В этом разделе описывается, как редактировать правила маршрутизации. Описаны следующие темы:

  • Добавление маршрутов и пунктов назначения

  • Удаление маршрутов и пунктов назначения

  • Изменение параметров маршрутов и пунктов назначения

Добавление маршрутов и пунктов назначения

Маршруты и пункты назначения можно добавлять, используя следующее:

  • RoutingGuideline.add_route(name, match, destinations[, options])

    • name: имя маршрута.

    • match: выражение соответствия для входящих сессий клиентов.

    • destinations: массив селекторов пунктов назначения в формате "strategy( destination, ...)"

    • options:

      • enabled: активен ли маршрут. Значение по умолчанию — true.

      • connectionSharingAllowed : разрешает ли маршрут совместное использование соединений. Значение по умолчанию — true.

      • dryRun : если установлено в значение true, проверяет правило без его применения к правилу маршрутизации. Значение по умолчанию — false.

      • order: позиция маршрута в рамках правила маршрутизации. Меньшие значения указывают на более высокий приоритет.

    Следующий пример добавляет маршрут RG1 к правилу маршрутизации, указывая, что соединения клиентов, направленные на порты 6446 или 6448, перенаправляются на первичный экземпляр кластера, используя стратегию first-available MySQL Router:

    rg.add_route("RG1", "$.session.targetPort in (6446, 6448)", ["first-available(Primary)"])
                
  • RoutingGuideline.add_destination(name, match[, options])

    • name: имя класса пункта назначения.

    • match: выражение соответствия для экземпляров MySQL.

    • options: необязательный словарь с дополнительными параметрами. В настоящее время поддерживается только dryRun.

Следующий пример добавляет класс пункта назначения под названием US_Instances и определяет пул серверов как те серверы, которые находятся в доменах us-east-1.example.com и us-west-2.example.com.

rg.add_destination("US_Instances", "$.server.address in ['us-east-1.example.com', 'us-west-2.example.com']")
        

Удаление маршрутов и пунктов назначения

Маршруты и пункты назначения можно удалить, используя следующее:

  • RoutingGuideline.remove_route(name)

  • RoutingGuideline.remove_destination(name)

Следующие примеры показывают, как удалить маршрут Route1 и пункт назначения Destination1 из выбранного правила маршрутизации:

RoutingGuideline.remove_route("Route1")
        
RoutingGuideline.remove_destination("Destination1")
        

Изменение параметров маршрутов и пунктов назначения

Маршруты и пункты назначения можно изменить, используя следующее:

  • RoutingGuideline.set_destination_option(destinationName, option, value)

    • destinationName: имя пункта назначения для обновления.

    • option: имя параметра для обновления.

      • match: выражение соответствия, определяющее пул серверов для этого пункта назначения.

    • value: новое значение для указанного параметра.

  • RoutingGuideline.set_route_option(routeName, option, value)

    • routeName: имя маршрута для обновления.

    • option: имя параметра для обновления.

      • match: выражение соответствия для входящей сессии клиента.

      • destinations: список пунктов назначения с использованием стратегий маршрутизации в формате strategy(destination1, destination2, ...), упорядоченных по приоритету (с наивысшего к наименьшему).

      • enabled: активен ли маршрут. Значение по умолчанию — true.

      • connectionSharingAllowed : разрешает ли маршрут совместное использование соединений. Значение по умолчанию — true.

      • order: позиция маршрута в рамках правила маршрутизации. Меньшие значения указывают на более высокий приоритет.

    • value: новое значение для указанного параметра.

Следующий пример обновляет пункт назначения EU_Regions, включив в него кандидатов пула серверов из доменов eu-central-1.example.com и eu-west-1.example.com.

rg.set_destination_option("EU_Regions", "match", "$.server.address in ['eu-central-1.example.com', 'eu-west-1.example.com']");
        

Следующий пример обновляет маршрут read_traffic, чтобы соответствовать только сессиям пользователей с чтением.

rg.set_route_option("read_traffic", "match", "$.session.user = 'readonly_user'");
        

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-shell-9.2-en/admin-api-routing-guidelines-editing.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API