7.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 соответственно изменит разрешенные типы запросов. Этот режим полезен, если приложение выполняет только запросы на чтение, которые могут выполняться в репликационном кластере, и вы хотите сохранить этот трафик направленным в локальный кластер. Обратите внимание, что имя кластера чувствительно к регистру.
См. Раздел 9.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 разрешает приложениям трафик чтения, но отбрасывает трафик записи. Хотя у недействительного кластера нет технических проблем, данные устаревают, поэтому этот параметр означает, что будут происходить устаревшие чтения, пока проблема не будет решена в ближайшее время. Однако этот параметр может повысить доступность в случаях, когда устаревшие чтения не являются приоритетными.
См. Раздел 9.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 открыть или закрыть порт чтения-записи (R/W) на маршрутизаторе, нацеленном на определенный Cluster (где
target_clusterне установлено наprimary), позволяя использовать порт R/W на ReplicaCluster. ReplicaCluster продолжает принимать только трафик R/O. В случае переключения или аварийного восстановления порт R/W остается неизменным.Если значение установлено на
true, MySQL Router R/W порт в ReplicaClusters.Если значение установлено на false (значение по умолчанию), поведение маршрутизатора не изменяется, и порт R/W закрыт в ReplicaClusters.
-
tagsПроизвольные пары ключ-значение в формате JSON. Например:
cluster.setRoutingOption("tags", "name:value") -
"read_only_targets", "all" | "read_replicas" | "secondaries"Доступно только для Cluster и ClusterSet.
all: все реплики чтения и вторичные члены Cluster используются для трафика только для чтения.read_replicas: только реплики чтения используются для трафика только для чтения.secondaries: только вторичные члены Cluster используются для трафика только для чтения.
Следующий пример устанавливает политику маршрутизации только для чтения для маршрутизатора с именем
machine1::router1только для реплик чтения:Cluster.setRoutingOption("machine1::router1", "read_only_targets", "read_replicas")
Для очистки параметра маршрутизации установите его в значение null.
© 2025 Oracle
Licensed under the GPLv2 License.