У меня есть сервер RDS в Японии и два экземпляра EC2, один в ЕС, а второй в Японии.
Я запускаю одно приложение на экземпляре Japan EC2, которое подключается к RDS (Япония). В этом приложении я просто выбираю данные из базы данных одновременно в 200 потоков, и оно работает нормально, без ошибок.
Но когда я запускаю то же приложение на экземпляре EC2 ЕС с 200 потоками, которые в это время связываются с RDS (Япония), я получаю следующую ошибку:
System.InvalidOperationException: истекло время ожидания. Период таймаута истек до получения соединения из пула. Это могло произойти из-за того, что все соединения пула использовались и был достигнут максимальный размер пула.
Очевидно, что между EU EC2 и Japan RDS будет задержка в сети.
Существуют ли какие-либо настройки, которые помогут мне игнорировать эту ошибку и успешно установить связь с 200 соединениями из экземпляра EC2 в ЕС с японской RDS?
Как вы уже упоминали, между ЕС и Японией существует некоторая задержка в сети. Я предполагаю, что большинство приложений не предназначены для такой настройки - обычно серверы приложений и серверы db расположены близко друг к другу.
Я мог бы придумать несколько обходных путей: