如何在不同的实例上进行 Mysqlnd_ms 运行 每个查询
How to make Mysqlnd_ms run each query on a different instance
我有一个带有 1 个只读副本的 AWS RDS(总共 2 个实例)。我打算安装 mysqlnd_ms 插件,这样我就可以让我的请求以循环方式指向数据库服务器。
我有 2 个基本问题无法在文档中找到直接答案
- 使用 mysqlnd_ms,有没有办法说,并非所有 select 查询都应指向从属(只读副本)。每个请求都应交替指向现有实例
- 假设我们 运行 每个请求有 2 个查询,那么每个查询是否指向 1 个实例?这意味着它将为每个请求打开 2 个数据库连接?我理解正确吗
创建一个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"
]
}
}
我有一个带有 1 个只读副本的 AWS RDS(总共 2 个实例)。我打算安装 mysqlnd_ms 插件,这样我就可以让我的请求以循环方式指向数据库服务器。
我有 2 个基本问题无法在文档中找到直接答案
- 使用 mysqlnd_ms,有没有办法说,并非所有 select 查询都应指向从属(只读副本)。每个请求都应交替指向现有实例
- 假设我们 运行 每个请求有 2 个查询,那么每个查询是否指向 1 个实例?这意味着它将为每个请求打开 2 个数据库连接?我理解正确吗
创建一个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"
]
}
}