Как заставить Mysqlnd_ms выполнять каждый запрос на другом экземпляре
У меня есть AWS RDS с 1 репликой чтения (всего 2 экземпляра). Я планирую установить плагин mysqlnd_ms, чтобы мой запрос указывал на серверы баз данных в циклическом режиме.
У меня есть 2 основных вопроса, на которые я не смог найти прямых ответов в документации
- Используя mysqlnd_ms, можно сказать, что не все запросы на выборку должны указывать на подчиненные (читать реплику). Каждый запрос должен альтернативно указывать на существующие экземпляры
- Предположим, что если мы запустим 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"
]
}
}