Mysql Router отправляет запрос на подчиненный узел на секунду

Я реализовал кластер InnoDB, используя маршрутизатор MySql (версия - 2.1.4) для HA Это мой файл mysqlrouter.conf

[DEFAULT]
user=mysqlrouter
logging_folder=
runtime_folder=/tmp/mysqlrouter/run
data_folder=/tmp/mysqlrouter/data
keyring_path=/tmp/mysqlrouter/data/keyring
master_key_path=/tmp/mysqlrouter/mysqlrouter.key

    [logger]
    level = DEBUG

    [metadata_cache:magentoCluster]
    router_id=49
    bootstrap_server_addresses=mysql://ic-1:3306,mysql://ic-2:3306,mysql://ic-3:3306
    user=mysql_router49_sqxivre03wzz
    metadata_cluster=magentoCluster
    ttl=1

    [routing:magentoCluster_default_rw]
    bind_address=0.0.0.0
    bind_port=6446
    destinations=metadata-cache://magentoCluster/default?role=PRIMARY
    mode=read-write
    protocol=classic

    [routing:magentoCluster_default_ro]
    bind_address=0.0.0.0
    bind_port=6447
    destinations=metadata-cache://magentoCluster/default?role=ALL
    mode=read-only
    protocol=classic

    [routing:magentoCluster_default_x_rw]
    bind_address=0.0.0.0
    bind_port=64460
    destinations=metadata-cache://magentoCluster/default?role=PRIMARY
    mode=read-write
    protocol=x

    [routing:magentoCluster_default_x_ro]
    bind_address=0.0.0.0
    bind_port=64470
    destinations=metadata-cache://magentoCluster/default?role=ALL
    mode=read-only
    protocol=x

MySql Router разделяет запросы чтения на подчиненные узлы, если я отключаю подчиненное устройство 1, то маршрутизатору требуется несколько секунд, чтобы узнать, что подчиненное устройство 1 выключено. Таким образом, запросы отправляются на подчиненный узел, и запрос не выполняется. Любое предложение, как справиться с этой неудачей?

1 ответ

Решение

Клиент всегда должен проверять наличие ошибок. Это необходимо для любой системы, поскольку сетевые ошибки, перебои в подаче электроэнергии и т. Д. Могут возникать в любой конфигурации.

Когда клиент обнаруживает сбой соединения (сбой соединения / сбрасывание соединения), он должен начать сначала, заново подключив и повторив транзакцию, в которой он находится.

Для целостности транзакции клиент должен быть вовлечен в процесс; восстановление не может быть обеспечено ни одним прокси.

Другие вопросы по тегам