6.10.4 Параметры маршрутизации
Метод setRoutingOption позволяет изменить параметр маршрутизации глобально или для отдельных маршрутизаторов.
Параметры маршрутизации следующие:
-
"target_cluster", "primary" | "clusterName"Доступно только для ClusterSet.
-
"primary":С этим параметром MySQL Router направляет трафик от клиентских приложений в кластер в развертывании InnoDB ClusterSet, который в настоящее время является основным кластером. Основной кластер может принимать трафик как для чтения, так и для записи. Режим первичности является по умолчанию для глобальной политики и для отдельных экземпляров MySQL Router.
-
"clusterName"С этим параметром MySQL Router направляет трафик от приложений к указанному кластеру в развертывании InnoDB ClusterSet, независимо от того, является ли он в настоящее время основным кластером или кластером реплики. Если целевой кластер в настоящее время является основным кластером, MySQL Router открывает порт для записи, и приложения могут записывать в экземпляр. Если целевой кластер в настоящее время является кластером реплики только для чтения, MySQL Router разрешает только трафик для чтения и отклоняет трафик для записи. Если эта ситуация изменяется из-за переключения или отключения по обслуживанию или в целевом кластере, MySQL Router соответствующим образом изменяет разрешенные типы запросов. Этот режим полезен, если приложение делает только запросы для чтения, которые могут быть выполнены в кластере реплики, и вы хотите сохранить этот трафик, маршрутизированный к локальному кластеру. Обратите внимание, что имя кластера чувствительно к регистру.
См. Раздел 8.6, «Интеграция MySQL Router с InnoDB ClusterSet».
-
-
"invalidated_cluster_policy", "drop_all" | "accept_ro"Доступно только для Cluster и ClusterSet.
"drop_all": Когда кластер помечен какINVALIDATED, MySQL Router запрещает как трафик для чтения, так и трафик для записи для него от приложений. Кластер в этом состоянии в настоящее время не функционирует как часть развертывания InnoDB ClusterSet и не может получать записи. Это может быть бывший основной кластер, который был помечен как недействительный во время процесса аварийного переключения, или кластер реплики, который был помечен как недействительный, потому что он был недоступен или не работал в момент переключения или во время контролируемого переключения. Этот параметр является по умолчанию для глобальной политики и для отдельных экземпляров MySQL Router."accept_ro": Когда кластер помечен какINVALIDATED, MySQL Router разрешает трафик для чтения для него от приложений, но отбрасывает трафик для записи. Хотя у недействительного кластера не обязательно есть какие-либо технические проблемы, данные устаревают, поэтому этот параметр означает, что будут происходить устаревшие чтения, пока проблема не будет решена в ближайшее время. Однако этот параметр может обеспечить более высокую доступность в тех случаях, когда устаревшие чтения не являются высоким приоритетом.
См. Раздел 8.6, «Интеграция MySQL Router с InnoDB ClusterSet».
-
"stats_updates_frequency", "numberOfSeconds"Этот параметр определяет интервал (в секундах) между обновлениями проверки MySQL Router.
Если значение установлено в 0 (по умолчанию), периодические обновления не выполняются. MySQL Router округляет значение до кратного своего TTL. Например:
Если значение меньше TTL, оно округляется до TTL. Например, если
TTL=30иstats_updates_frequency=1, эффективная частота составляет 30 секунд.Если значение не кратно TTL, оно округляется до ближайшего кратного и корректируется в соответствии с TTL. Например, если
TTL=5иstats_updates_frequency=11, эффективная частота составляет 15 секунд, или еслиTTL=5иstats_updates_frequency=13, эффективная частота составляет 15 секунд.
Если значение равно null, значение параметра очищается, и вступает в силу значение по умолчанию.
-
"unreachable_quorum_allowed_traffic", [ read | all | none ]Доступно только для Cluster.
Определяет политику маршрутизации MySQL Router в случае потери кворума в единственном доступном разделе Cluster.
ВажноИзменение этого параметра не рекомендуется. Последствия включают нарушение гарантий согласованности InnoDB Cluster, возвращаемые данные могут быть устаревшими или просто некорректными. Разные маршрутизаторы могут обращаться к разным разделам и могут возвращать разные данные. Разные маршрутизаторы могут иметь различное поведение, некоторые из них предоставляют трафик только для чтения, а другие — трафик для чтения и записи.
read: MySQL Router продолжает использовать оставшихся активных участников в качестве пунктов назначения только для чтения. Порты для чтения и чтения-записи остаются открытыми для чтения, но трафик для записи блокируется.all: MySQL Router использует все оставшиеся активные пункты назначения в качестве пунктов назначения чтения-записи. Все порты остаются открытыми.none(по умолчанию): Все текущие подключения разрываются, и новые подключения отклоняются.
Этот параметр не имеет эффекта, если установлено положительное значение, а либо
OFFLINE_MODE, либоABORT_SERVER. -
"use_replica_primary_as_rw", [true | false]Доступно только для ClusterSet.
Этот параметр указывает MySQL Router открыть или закрыть порт чтения-записи (Ч/З) на маршрутизаторе, направленном на определенный кластер (где
target_clusterне установлено наprimary), что позволяет использовать порт Ч/З на ReplicaCluster. ReplicaCluster по-прежнему принимает только трафик Ч/О. В случае переключения или отключения по обслуживанию порт Ч/З остается неизменным.Если установлено
true, MySQL Router открывает порт Ч/З в ReplicaClusters.Если установлено false (по умолчанию), поведение маршрутизатора не изменяется, и порт Ч/З закрыт в ReplicaClusters.
-
tagsПроизвольные пары ключ-значение в формате JSON. Например:
cluster.setRoutingOption("tags", "name:value") -
"read_only_targets", "all" | "read_replicas" | "secondaries"Доступно только для Cluster и ClusterSet.
all: все чтение реплик и вторичные члены кластера используются для трафика только для чтения.read_replicas: используются только реплики чтения для трафика только для чтения.secondaries: используются только члены вторичного кластера для трафика только для чтения.
В следующем примере настраивается политика маршрутизации только для чтения для маршрутизатора с именем
machine1::router1только для реплик чтения:Cluster.setRoutingOption("machine1::router1", "read_only_targets", "read_replicas")
Для очистки параметра маршрутизации установите его в значение null.
© 2025 Oracle
Licensed under the GPLv2 License.