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-availableMySQL 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.