Я использую CodeIgniter для своей реализации API. Пожалуйста, найдите серверные ресурсы и технологии, используемые следующим образом:
РЕЗЮМЕ
Framework : CodeIgniter
Database : MySQL (Hosted on RDS)
Hosting : AWS t2.Micro
Web Server : Nginx
Я использую 2 Slaves и 1 master Database согласно следующей ссылке
CodeIgniter настроить разные IP для чтения и записи данных MySQL
Я использую следующее в каждый контроллер для создания подключения к базе данных.
$DB1_READ = $this->load->database('READ', TRUE);
$DB2_READ = $this->load->database('READ', TRUE);
$DB3_WRITE = $this->load->database('WRITE', TRUE);
Я также использую различные подключения READ и WRITE в файле Database.php:
2 СЧИТАЮЩИХ СЕРВЕРА и 1 ПИСАТЕЛЬСКИЙ СЕРВЕР (МАСТЕР)
ПРОБЛЕМА
Поскольку я загружаю базу данных в мои контроллеры, то, когда я только вызываю свою базу данных READ, она устанавливает соединение WRITE с сервером WRITE.
Куда мне звонить $this->load->database
так что если я собираюсь только выполнить запрос EXECUTE READ из базы данных READ, он не должен идти на сервер WRITE, что вызывает сбой сервера WRITE.
Это открывает нежелательное соединение в WRITE, что, в свою очередь, увеличивает нагрузку на мою основную базу данных. Согласно AWS RDS, у меня может быть только 1 Мастер, так что это ОГРОМНАЯ проблема для меня, так как мой МАСТЕР умирает каждый раз.
Задача ещё не решена.
Других решений пока нет …