Как заставить Mysqlnd_ms выполнять каждый запрос на другом экземпляре

У меня есть AWS RDS с 1 репликой чтения (всего 2 экземпляра). Я планирую установить плагин mysqlnd_ms, чтобы мой запрос указывал на серверы баз данных в циклическом режиме.

У меня есть 2 основных вопроса, на которые я не смог найти прямых ответов в документации

  1. Используя mysqlnd_ms, можно сказать, что не все запросы на выборку должны указывать на подчиненные (читать реплику). Каждый запрос должен альтернативно указывать на существующие экземпляры
  2. Предположим, что если мы запустим 2 запроса на запрос, то будет ли каждый запрос указывать на 1 экземпляр? Это значит, что для каждого запроса будут открываться 2 подключения к базе данных? Я правильно понимаю

1 ответ

Решение

Создайте файл JSON и укажите путь в

/etc/php.d/mysqlnd_ms.ini

файл, как показано ниже

mysqlnd_ms.config_file=/etc/mysqlnd_ms_cfg.json

Добавьте следующий код в файл json

/etc/mysqlnd_ms_cfg.json

    {

        "myapp": {
            "master": {
                "master_0": {
                    "host": "RDS master instance IP/doamin name",
                    "port": 3306
                }
            },
            "slave": {
                "slave_0": {
                    "host": "RDS master instance IP/doamin name",
                    "port": 3306
                },
                "slave_1": {
                    "host": "RDS read replica instance IP/doamin name",
                    "port": 3306
                }
            },
            "filters": [
                "roundrobin"
            ]
        }
    }
Другие вопросы по тегам