Php 4000个并发用户的负载测试

Php 4000个并发用户的负载测试,php,mysql,codeigniter-3,rds,Php,Mysql,Codeigniter 3,Rds,我在API实现中使用CodeIgniter。请查找所使用的服务器资源和技术,如下所示: 摘要 Framework : CodeIgniter Database : MySQL (Hosted on RDS) Hosting : AWS t2.Micro Web Server : Nginx 我使用2个从数据库和1个主数据库,如下链接所示 我在每个控制器中使用以下命令来建立数据库连接 $DB1_READ = $this->load->database('READ', TR

我在API实现中使用CodeIgniter。请查找所使用的服务器资源和技术,如下所示:

摘要

Framework : CodeIgniter

Database : MySQL (Hosted on RDS)

Hosting :  AWS t2.Micro

Web Server  : Nginx
我使用2个从数据库和1个主数据库,如下链接所示

我在每个控制器中使用以下命令来建立数据库连接

$DB1_READ = $this->load->database('READ', TRUE);

$DB2_READ = $this->load->database('READ', TRUE);

$DB3_WRITE = $this->load->database('WRITE', TRUE);
我还在Database.php文件中使用不同的读写连接:

2台读服务器和1台写服务器(主服务器)

问题

当我在控制器中加载数据库时,当我只调用我的读数据库时,它正在与写服务器建立写连接

我应该在哪里调用
$this->load->database
,这样,如果我只想从READ数据库执行READ查询,那么它就不应该转到WRITE服务器,从而导致WRITE服务器出现故障


它在写入时打开了一个不需要的连接,从而增加了主数据库的负载。根据AWS RDS,我只能有一个Master,这对我来说是一个很大的问题,因为我的Master每次都会死。

在典型的框架中,您可以覆盖DAO或“driver”类来完成这一任务。从谷歌上看,codeigniter似乎没有简单的解决方案。你所说的“它正在与写服务器建立写连接”是什么意思?你是说它正在打开一个你不想要的到写数据库的连接,还是说同时有对服务器的读写请求?是的@PeterM它正在打开一个不需要的写连接,这反过来增加了我的主数据库的负载。根据AWS RDS,我只能有一个Master,这对我来说是个大问题,因为我的Master每次都会死。好的,我可以建议在各自的函数中加载数据库,即将读写功能分离为单独的函数,然后在写入时,在写入函数中加载可写DB,并在read函数中加载可读的DB,并从构造函数中删除所有加载代码(假设从中加载代码)。如果仍然希望在构造函数中自动加载DB,甚至可以将功能划分为只读类和只读类。